nginx做反向代理時出現端口號丟失

CSDN問答 2022-01-07 15:54:58 阅读数:790

nginx 反向 代理 端口

我自己在家裏搭了一個網站服務器,由於是普通網,運營商不給開通80和443端口,所以我外網開放的800端口,然後在域名解析時做了一個跳轉。

正常訪問步驟應該是http://XXXX.club/pi    ->      https://XXXX.club:800/pi    -> nginx匹配location時在url後自動加/    ->   https://XXXX.club:800/pi/,然後nginx再把請求轉發給相應的後端。但是目前出現了這個情况:

http://XXXX.club/pi    ->      https://XXXX.club:800/pi    ->    https://XXXX.club/pi/,在第三步時端口號沒了,直接導致訪問不到服務器。

這是我nginx的配置:

server { listen      443      ssl; server_name          XXXX.club; ssl_certificate      /etc/nginx/cert/nginx.crt; ssl_certificate_key  /etc/nginx/cert/nginx.key; ssl_session_timeout  5m; charset UTF-8; location /pi/ { proxy_pass http://192.168.50.111:18314/ServerStatus/; }}#下面是後端php的配置。server { listen 18314; listen [::]:18314; root /var/www/html; location / { index index.html index.htm index.php default.html default.htm default.php; } location ~\.php$ { fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}

location後的那個/必須加,不加的話url無法自己帶上/,會導致一些資源訪問出問題。

如果訪問的時候直接XXXX.club/pi/就沒問題,會正常代理到https://XXXX.club:800/pi/。

這究竟是哪裏出問題了呢。

補充:我試過百度的加proxy_set_header的方法,不管用。

版权声明:本文为[CSDN問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071554583300.html