问题:nginx做反向代理时,比如后端有几台监听1080端口的web服务器,此时要用访问80端口,该怎么办呢?


这是在公司项目的时候,遇到的一个问题。由于云计算的服务器上,租户的权限有限,不能监听小于1024的端口,另外也是为了安全。

办法是,前端用nginx监听80端口,然后转发至后台的服务器上,只需要配置一个upstream加一个端口监听转发即可。

    upstream yourwebsite {


        server 10.10.10.10:1080 weight=5;

    }

    server {

        listen       80;

        server_name  li5jun.com www.li5jun.com;


        ssi on;


        location  / {

                proxy_set_header X-Forwarded-For $http_x_frowarded_for;

                proxy_set_header X-Real-IP $remote_addr;

                proxy_set_header Host $host;

                proxy_pass http://yourwebsite;

                client_max_body_size 100m; #允许客户端请求的最大单文件字节数

                proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时)

                proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)

                proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时)

          }



        error_page  404              /system/404.html;


        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

这样子,通过访问这台代理机,后台即可正常的访问,就如同访问80端口一样。