+-
Nginx:重定向期间保留端口
我有一个Nginx服务器在一个Docker容器内监听80.

在Nginx配置中,我需要在特定情况下执行重定向到静态页面.

rewrite ^ /foobar.html redirect;

用户可以使用docker命令行运行容器指定任何端口(作为参考,她可以在端口8000上公开容器,内部Nginx仍将使用80).

现在,当Nginx重定向URL时,端口将替换为Nginx内部使用的端口,而不是使用Docker使用的端口.

我试图设置一堆标题,但他们没有帮助:

proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://app_server;

rewrite ^ /foobar.html redirect;

它仍然重定向到80.

如何告诉Nginx保留用户使用的端口?

最佳答案
所以,我找到了一个解决方案,我可以指定重定向如下:

rewrite ^ $scheme://$http_host/foobar.html redirect;

这将保留端口.

点击查看更多相关文章

转载注明原文:Nginx:重定向期间保留端口 - 乐贴网