+-

我有一个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:重定向期间保留端口 - 乐贴网