Nginx 反向代理和缺少尾部斜杠重定向

Nginx 反向代理和缺少尾部斜杠重定向

我对 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

端口重定向在后端服务器上。

相关内容