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

Docker中Nginx反向代理端口映射异常跳转80端口解决方案

问题根因

访问时跳转到宿主机80端口,核心是两个配置疏漏:

  • 反向代理过程中,Nginx默认不会修改上游服务返回的3xx重定向响应里的Location字段,上游返回的重定向地址未携带11111端口,浏览器拿到地址后默认请求80端口
  • 代理请求未主动设置Host请求头,上游服务收到的请求Host为宿主机IP+端口,和自身站点域名不匹配会触发主动重定向,同时现有配置未处理/goto不带末尾斜杠的路径匹配场景,进一步放大跳转异常。
修复方案

调整Nginx配置中对应location块的代理规则,补全必要配置:

  1. 替换原server块配置为以下内容
server {
    listen 80;
    # 处理不带末尾斜杠的/goto路径访问,直接跳转到带斜杠的标准路径
    location = /goto {
        return 301 /goto/;
    }
    location /goto/ {
        # 设置代理请求头,保证上游服务能正确识别请求
        proxy_set_header Host www.kugou.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 核心配置:自动改写上游返回的重定向地址,匹配当前代理路径
        proxy_redirect ~^(https?://[^/]+)/(.*)$ /goto/$2;

        proxy_pass https://www.kugou.com/;
    }
}
  1. 配置修改完成后执行校验和重载
    • 容器内执行nginx -t确认配置无语法错误
    • 执行nginx -s reload重载配置生效,Docker部署场景可直接在宿主机执行docker exec <你的Nginx容器名> nginx -s reload
  2. 清空浏览器缓存后重新访问114.188.16.20:11111/goto即可正常代理访问,不会再跳转到80端口。

内容的提问来源于stack exchange,提问作者陈少锋

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:21:34