You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx反向代理无尾部斜杠路径跳转暴露端口82故障解决求助

问题根因

后端Nginx在接收不带尾部斜杠的目录请求时,默认会返回301重定向自动追加斜杠,但后端服务监听82内网端口,无法感知前端反向代理的HTTPS协议、公网域名信息,所以重定向地址错误拼接了内网端口和HTTP协议,导致用户跳转到无法访问的地址。

解决方案

方案1:修改后端Nginx配置(推荐,改动量最小)

直接调整后端Nginx的重定向规则,避免拼接错误的端口和协议:

server {
    listen 82;
    root /var/www/xxxx.com/_site;
    index index.htm index.html;
    # 新增以下2行配置,关闭绝对路径重定向
    absolute_redirect off;
    server_name_in_redirect off;

    # 把原location匹配规则的尾部斜杠去掉,兼容带/和不带/的请求
    location /privacy {
      index index.html;
      try_files $uri $uri/ =404;
    }
}

修改完成后执行nginx -t检查配置语法,确认无误后执行nginx -s reload重载配置即可生效。此时访问不带斜杠的/privacy会返回相对路径的重定向,直接沿用用户当前访问的HTTPS公网域名,不会携带82端口。

方案2:修改前端反向代理配置

如果不想改动后端服务,也可以在前端Nginx反向代理层修正后端返回的重定向地址:

location / {
#    limit_req zone=MYZONE burst=100 nodelay;
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://xxxxx:82;
    # 新增以下配置,自动替换重定向地址的错误前缀
    proxy_redirect http://xxxxx:82/ $scheme://$host/;
}

同样检查配置语法无误后重载Nginx即可生效。

内容的提问来源于stack exchange,提问作者Ezols

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:06:03