首页 > 解决方案 > Nginx proxy_pass 后端服务器向客户端发送 302 并将客户端重定向到后端 IP

问题描述

我有一个 IP 192.168.1.10 端口 8090 的后端服务器,nginx 可以通过示例 10.0.0.10 访问它,然后 NATed 到 192.168.1.10

nginx ----> 10.0.0.10 ----> 192.168.1.10

这通常效果很好,但我们在这里面临一个特定的问题,它似乎与重定向有关。

客户端转到 https://nginx/gateway 并建立连接,后端服务器应用程序现在需要身份验证,因此后端服务器将 302 重定向发送回客户端。我在客户端 Web 浏览器中注意到的是地址发生了变化,客户端尝试建立到http://192.168.1.10:8080的连接 (身份验证服务位于不同的端口上)。该页面无法加载,因为客户端没有到该目的地的路由。

我的期望是 nginx 在内部处理这个重定向,并且只是使用自己的 https://nginx 地址将内容传递给客户端。

配置很简单:

        location / {
                proxy_pass "http://10.0.0.10:8090";
proxy_set_header Host $host:$server_port;
}

有什么建议么?非常感谢!

标签: nginx-reverse-proxy

解决方案


推荐阅读