条件:家用移动宽带12M一条。路由器一个。家用pc一台。多个顶级域名。
需求:在个人电脑上架设多个web网站。
家庭电脑上需要安装的软件:nat123 -- 动态域名解析 。wamp server -- php解析。 nginx --反向代理 。
实现方案、原理:
1、通过nat123动态域名解析功能将 顶级域名解析到 拨号宽带中的动态公网ip (我的移动宽带拨号后是公网ip,这个可以到路由器里看到)
实现步骤:个人电脑上运行nat123软件添加一个 动态域名解析记录。(电脑上运行nat123软件添加一个动态域名解析 即可,二级域名地址可以看到,比如: mmfa.01a60a.1.d.cname123.net )。。。二级域名地址复制好。。第二步要用到。
2、域名cname解析到nat123 提供的二级域名上。
实现步骤:域名注册商那里将域名的解析记录修改为 cname 类型,到 nat123提供的二级域名上
3、路由器配置转发规则,将来自顶级域名的访问请求的80端口转发到 个人pc的192.168.1.100的80端口上。
实现步骤:打开192.168.1.1路由器管理页面, 转发规则---》虚拟服务器-》添加一个80端口到80端口的新条目。意思就是说,将互联网上用户浏览器上递交的域名访问请求映射到本地192.168.1.100电脑上的80端口的服务上。当然如果本机的nginx服务不是默认的80端口那就要改。。服务端口号肯定是80,因为这是打开网站的默认端口号80.。。内部端口号就是本机上提供服务的端口号。
4、安装并运行nginx,默认是80端口。。。
实现步骤:配置nginx.conf文件,添加一下内容:
server {
listen 80;
server_name www.abc.com;
location / {
proxy_pass http://127.0.0.1:3000; //本机nodejs服务的默认3000端口
}
}
server {
listen 80;
server_name www.bcd.com;
location / {
proxy_pass http://127.0.0.1:8081; //本机apache服务的监听端口,可以在apache的http.conf文件随意修改端口号
}
}
说明:一个server 内容就是一个反向代理。。这里是2个反向代理。不同的域名走不同的通道。
弄好以后,互联网任何一个用户在浏览器输入 www.abc.com 都会打开本机的nodejs的网站页面
浏览器输入www.bcd.com 就会打开 apache服务页面。
如果局域网内网有多台服务器,修改127.0.0.1:8081为 其他ip、端口号即可。比如修改为: 192.168.1.108:80
如果你有比如10个域名,那么就要搞定apache的多域名站点配置。这个自己去百度搞定.
或者,直接通过一个顶级域名 反向代理到一个子目录上。。比如:
server {
listen 80;
server_name www.ccccc.com;
location / {
proxy_pass http://127.0.0.1:8081/phpmyadmin/;
}
}
或者:
server {
listen 80;
server_name www.ddddd.com;
location / {
proxy_pass http://127.0.0.1:8081/a/b/;
}
}
结束语:我也是第一次弄这个。弄好以后写这个分享的文章给需要的朋友。。。开始我没有安装nginx(虽然我知道nginx可以反向代理,可以做到),一直尝试向通过apache解决问题,结果弄了好久都没有成功。(按照百度上面的apache 反向代理 关键字的多篇文章写的去做。)。。后来就干脆加个nginx 算了。。。