Nginx反向代理,带有永久URL部分

时间:2019-02-26 16:01:30

标签: http nginx proxy

我正在尝试配置一个nginx代理,我已经做过很多次了。但是这次特殊的要求让我很难受,所以我决定寻求帮助。

我有一台正在运行nginx的服务器。可以在www.example.com上说出来。

我想将所有进入“ www.example.com/test”的流量重定向到另一个地址,例如“ www.another.com”。我不希望传递URL的“测试”部分,但同时我希望它保留在原始请求中,即使目标服务器执行了重定向。

但这不起作用。如果我访问“ www.example.com/test”,它将正确转发到“ www.another.com”。但是,当在目标站点上执行重定向到“ / login”(因此目标看起来像“ www.another.com/login”)时,浏览器中的URL将被重写为“ www.example.com/login” “ www.example.com/test/login,这就是我需要的。

我尝试了许多不同的配置,最近的配置是这样:

server {
        listen 443;
        server_name www.example.com;


        ### SSL CONFIG - not relevant here ###

        location /test/ {

                proxy_pass https://www.another.com/;
                proxy_set_header  Host $host;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $remote_addr;
                proxy_set_header  X-Forwarded-Host $remote_addr;
                proxy_redirect https://www.another.com/ /idm;
        }

        location / {
                ### Handling for URLS other than /test
        }
}

我尝试了不使用proxy_redirect,或者将其设置为“ default”,“ off”,将“ www.another.com”设置为Host标头,删除所有标头并仅执行proxy_pass并删除“ location”中的斜杠和“ proxy_pass”-结果相同或更差(如果使用斜线)。

非常感谢您的帮助!

0 个答案:

没有答案