【发布时间】:2023-03-31 23:21:01
【问题描述】:
在执行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 或至少防止泄漏?
【问题讨论】:
-
nginx没有生成重定向,端点是。您可以尝试添加多个proxy_redirectstatements 之一来更改Location标头。 -
@RichardSmith,看起来
proxy_redirect $endpoint http://$host;做了正确的事。这就是你的建议吗? -
如果您无法更改端点,它可能是您唯一的其他解决方案。