ywg 发表于 2016-12-27 09:19:19

Nginx_proxy隐藏ip和端口号配置方案

  最近使用vps做了许多网站,便用nginx做proxy。期间遇到了一些问题。
刚开始的配置如下:
     server {
        listen       80;
        server_name  www.qiqufang.com;
    location / {
         proxy_pass http://112.213.109.16:8080/;
        }
      }

配置这个很简单,但是访问网站的时候就遇到了许多的麻烦.
(1)网站页面中直接读取了服务器ip和端口号。
(2)在网站服务端不能正确获取到port.或者做重定向的时候地址总是丢掉端口(port)。

最简单的解决方案,修改Nginx的配置文件:

    server {
        listen       80;
        server_name  www.qiqufang.com;

    server_name_in_redirect off;
    proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
         proxy_pass http://112.213.109.16:8080/;
        }
    }

如上才是正确的配置nginx。其中的proxy_set_header Host $host:$server_port; 这一行非常关键。

  (程序员百味原创博文,欢迎转载并注明出处,欢迎订阅 )
页: [1]
查看完整版本: Nginx_proxy隐藏ip和端口号配置方案