我对 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
关端口重定向在后端服务器上。