外网访问xxx.homeserver.com时,我要求代理自动将请求转向内网IP为192.168.1.20(我的Home Server的IP)的服务器。
访问xxx.homeserver.com,可以是http的请求,也可以是https,但服务器是要求加密的,所以需要同时监听80和443两个端口,并都指向192.168.1.20这个IP
其他请求,如mail.DIYPCs.com,则根据关键字mail转向Exchange服务器(还没开启,不过这是未来的一个部署),此服务器IP肯定不是192.168.1.20
具体操作:
执行以下命令:
sudo vi /etc/nginx/sites-enabled/whs.conf
其中whs.conf为配置文件的文件名(自己随便改,但后缀必须是.conf),以下为我的whs.conf文件内容:
server {
listen 80;
server_name xxx.homeserver.com;
location / {
proxy_pass http://192.168.1.20:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
}
server {
listen 443;
server_name xxx.homeserver.com;
ssl on;
ssl_certificate /etc/nginx/ssl/whs.pem;
ssl_certificate_key /etc/nginx/ssl/whs.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers HIGH:!ADH:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://192.168.1.20:443;
proxy_set_header host xxx.homeserver.com;
}
}
以上加亮部分为需要特别注意和修改的地方,其中xxx.homeserver.com为你自己的服务器域名,其他部分还有IP的修改和域名证书存放位置的修改。
修改完成后,保存退出就可以了。其他任何别的文件都不需要做更改(这也是我选择nginx的主要原因,简单!)
上面只是Home Server的配置,我说了,Exchange邮箱服务器还没弄好,还有别的服务器等等,每一个服务器可以有自己的配置,也可以在上面的whs.conf后面添加……格式就跟上面一样,更具体的内容可以另行搜索nginx的使用
经过上述简单配置,我的“反向代理”就完成了。最后一步工作:在路由器上将80和443端口映射指向该反向代理服务器的IP(我的是192.168.1.15)
补充一下:上述过程完成了,需要重启NginX,或服务器。指令为:
/etc/init.d/nginx restart
最后测试一下:
和原先一样,没有任何问题……此反向代理的架设就算完成了。