![Nginx 反向代理和缺少尾部斜杠重定向](https://linux22.com/image/555692/Nginx%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%92%8C%E7%BC%BA%E5%B0%91%E5%B0%BE%E9%83%A8%E6%96%9C%E6%9D%A0%E9%87%8D%E5%AE%9A%E5%90%91.png)
我对 nginx 有点问题,它既充当反向代理,又充当代理服务器。
在前端服务器上,我的配置是:
server {
server_name example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.2.2.1:8999;
}
}
在代理服务器上:
server {
listen 10.2.2.1:8999;
server_name example.com;
autoindex on;
location / {
root /var/www/;
}
}
最后,在这个代理服务器上,/var/www/test
存在一个目录,里面有一些文件。
当我尝试访问http://example.com/test
(没有尾随斜杠!)时出现问题:我的浏览器被重定向到http://example.com:8999/test/
...如果我尝试访问http://example.com/test/
,则没有问题。
我已经尝试过 proxy_redirect 语句,据我所知,它允许反向代理重写Location
标头以避免这种行为,但这对我来说不起作用。为什么?
我的第二个问题是,为什么使用代理的 nginx 会将我重定向到此 URL?我该如何阻止它这样做?
提前感谢任何帮助。
答案1
关端口重定向在后端服务器上。