执行curl -ILk http://192.168.0.4/app
时,301重定向的Location标头为http://my-srv.local/app/
,这是服务器本地地址。我已将server_name_in_redirect on
放在任何地方以摆脱它,但结果是一样的。
配置:
server {
server_name my-nginx;
server_name_in_redirect on;
set $endpoint http://my-srv.local;
location / {
server_name_in_redirect on;
proxy_pass $endpoint;
}
}
注意:我使用的nginx版本还没有absolute_redirect
。
参考:Information leak with automatic trailing slash redirect
如何使其指向正确的URL或至少防止泄漏?
答案 0 :(得分:0)
所以my-srv.local
生成该响应(这是非常合理的)。使用nginx 1.11.8+,它可能会生成相对重定向。与此同时,可能的解决方法是覆盖重定向:
server {
server_name my-nginx;
set $endpoint http://my-srv.local;
location / {
proxy_pass $endpoint;
proxy_redirect $endpoint http://$host;
}
}