302重定向不会在nginx反向代理后面工作

时间:2018-06-08 12:25:11

标签: redirect nginx reverse-proxy

我们目前正在从Pound切换到Nginx用于我们的反向代理,除了一个站点外,我的一切都在工作。

我们有一个拆分DNS设置。我们所有的网络服务器都在我们的防火墙后面。如果您在我们的网络上,我们的内部DNS直接指向我们的网络服务器。如果您在我们的网络之外,我们的外部DNS指向我们的反向代理,它通过我们的防火墙将流量转发给网络服务器。

我们有一个网站当然是供应商软件(horray!),基本上如果我们的用户转到http://abc.foo.com服务器发送302重定向代码并将其指向https://login.vendorsite.com

此重定向适用于内部,但如果您从外部连接302重定向永远不会使它成为nginx。他们留在abc.foo.com上,而Nginx则返回200状态。

我们从未遇到过Pound这个问题,pound允许重定向通过而没有问题。

这是我目前的nginx配置:

server {
    listen 80;
    server_name abc.foo.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://webserveripaddress;
    }
}

2 个答案:

答案 0 :(得分:0)

我猜你错过了一些东西,但如果真的那么简单你就可以使用返回

location / {
     return 301 http://webserveripaddress;
}

答案 1 :(得分:0)

显然我们不再使用abc.foo.com的内部服务器 他们改变了外部DNS上的DNS条目,并且从未从旧的反向代理中删除信息,因为“它不再那样了”。

所以Nginx正在按预期工作。