a547020679 2021-02-20 17:33 采纳率: 0%
浏览 293

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的方法,不管用。

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-07 18:39
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度