外网访问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

最后测试一下:

 

NginX反向代理服务器(Reverse Proxy)——【二】NginX配置文件修改_反向代理

和原先一样,没有任何问题……此反向代理的架设就算完成了。