Nginx 反向代理目录重定向时端口错误的解决方案

背景 Nginx 配置反向代理,将本地监听于非 443 端口的 HTTP 服务映射到公网。通过公网 HTTPS 域名访问首页正常,当访问目录路径且未添加尾部斜杠(例如 /admin)时,浏览器地址栏跳转至错误的地址。URL 显示为 http://域名:端口/admin/。该地址暴露了本地端口且协议降级,导致公网无法访问。 原因 Nginx 处理目录请求时,若路径未包含尾部斜杠,会执行 301 重定向以补充斜杠。默认配置下,Nginx 在构造重定向 URL 时会将其监听的本地端口拼接进地址。这导致客户端收到的重定向地址与实际公网访问端口(443)不一致。 方案 在 Nginx 配置文件的 server 块中添加 port_in_redirect off; 指令。 配置示例: 1 2 3 4 5 6 7 8 9 10 server { listen 443 ssl; server_name example.com; # 关键配置:禁止 Nginx 在重定向 URL 中携带端口号 port_in_redirect off; location / { proxy_pass http://127.0.0.1:8080; # 其他代理配置... } } 修改配置后执行 nginx -s reload 重载服务。 ...

2026年03月09日 · 1 分钟 · Kx501