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

Docker环境下Nginx配置根路径重定向到/portal跳转异常如何解决

问题原因

你遇到的跳转异常核心是两个问题:

  1. Nginx默认开启absolute_redirect,相对路径的301跳转(return 301 /portal)会自动补全为绝对路径,补全过程使用的$host变量不包含请求端口,而你的Nginx在Docker容器内监听80端口,外部映射的8080端口默认不会被识别到。
  2. 你当前的代理配置没有传递原始请求的端口和协议信息,再加上可能存在的HTTP强制跳转HTTPS逻辑,最终导致跳转到了错误的地址。

解决方案

按以下步骤修改你的Nginx配置即可:

  1. 根路径的重定向规则优先使用精确匹配,同时调整Host传递逻辑,用$http_host替代$host($http_host会完整保留用户请求的域名+端口),补充原始协议和端口的转发字段
  2. 关闭自动补全绝对跳转路径,让浏览器直接基于当前访问地址处理相对路径跳转,适配不同端口场景

修改后的完整配置参考:

upstream webportal {
    server portal_container:8080;
}

# 放在server块层级,关闭自动补全绝对跳转路径
absolute_redirect off;

location = / {
  return 301 /portal;
}

location /portal {
    proxy_set_header        Host            $http_host;
    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_set_header        X-Forwarded-Port  $server_port;
    proxy_pass http://webportal;
}

修改配置后重载Nginx配置,再清理浏览器缓存(301是永久重定向,浏览器会缓存旧的跳转规则)即可生效。

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

相关产品推荐
方舟 Agent Plan

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

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