自动尾随斜杠重定向泄漏位置标头

时间:2017-09-20 07:47:41

标签: redirect nginx

执行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或至少防止泄漏?

1 个答案:

答案 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;
    }
}