Nginx做反向代理時訪問端口被自動去除


使用的Nginx版本 : nginx/1.13.10

出現問題的配置文件如下

upstream http-web {
                server 0.0.0.0:9000;
        }

server {
        listen       8088;
        server_name mysql_web;

        resolver 8.8.8.8;

        location / {
                proxy_pass http://http-web;

                #Proxy Settings
                proxy_redirect     off;
                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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
                proxy_max_temp_file_size 0;
                proxy_connect_timeout      300;
                proxy_send_timeout         300;
                proxy_read_timeout         300;
                proxy_buffer_size          4k;
                proxy_buffers              4 32k;
                proxy_busy_buffers_size    64k;
                proxy_temp_file_write_size 64k;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   html;
        }
}

 

測試結果:

[root@nginx-server conf.d]# curl http://172.30.45.10:8088 -v

< HTTP/1.1 302 Found

< Server: nginx/1.13.10

< Date: Wed, 29 May 2019 14:32:10 GMT

< Content-Length: 0

< Connection: keep-alive

< x-frame-options: SAMEORIGIN

< Location: http://172.30.45.10/login #<== 端口被nginx去除

 

正確的配置文件如下:

upstream http-web {
                server 0.0.0.0:9000;
        }

server {
        listen       8088;
        server_name mysql_web;

        resolver 8.8.8.8;

        location / {
                proxy_pass http://http-web;

                #Proxy Settings
                proxy_redirect     off;
                proxy_set_header   Host             $host:$server_port; #Host頭部需要增加端口,否則端口會被Nginx去除
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
                proxy_max_temp_file_size 0;
                proxy_connect_timeout      300;
                proxy_send_timeout         300;
                proxy_read_timeout         300;
                proxy_buffer_size          4k;
                proxy_buffers              4 32k;
                proxy_busy_buffers_size    64k;
                proxy_temp_file_write_size 64k;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   html;
        }
}

測試結果:

[root@nginx-server conf.d]# curl http://172.30.45.10:8088 -v

< HTTP/1.1 302 Found

< Server: nginx/1.13.10

< Date: Wed, 29 May 2019 14:32:10 GMT

< Content-Length: 0

< Connection: keep-alive

< x-frame-options: SAMEORIGIN

< Location: http://172.30.45.10:8088/login #<== 此時已恢復正常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM