代码:
server {
listen 80;
server_name 127.0.0.1;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host 127.0.0.1:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
后端服务器中request.getServerPort()无法获得正确的端口,返回的仍然是80;
在response.sendRedirect()时,客户端可能无法获得正确的重定向url。
正确的配置方法为
在 $host之后加上端口号,如 $host:80
参考:
https://blog.csdn.net/zhuchunyan_aijia/article/details/51800632
在Nginx配置中,当使用proxy_pass进行反向代理时,后端服务器通过request.getServerPort()获取到的端口可能不正确,始终为80。同时,response.sendRedirect可能导致客户端接收到的重定向URL缺少端口号。为解决此问题,需要在$host后面明确指定端口号,如$host:80,确保信息传递的准确性。参考链接提供了详细的解决方案。

1万+

被折叠的 条评论
为什么被折叠?



