Redirect 302';在nginx反向代理之后不工作

Redirect 302';在nginx反向代理之后不工作,redirect,nginx,reverse-proxy,Redirect,Nginx,Reverse Proxy,我们目前正在从Pound切换到我们的反向代理的Nginx,除了一个站点之外,我所有的东西都可以工作 我们有一个分离的DNS设置。我们所有的网络服务器都在防火墙后面。如果您在我们的网络上,我们的内部DNS直接指向我们的Web服务器。如果您在我们的网络之外,我们的外部DNS会指向我们的反向代理,它会将流量通过防火墙转发到Web服务器 我们有一个网站,当然是供应商软件(horray!),基本上如果我们的用户去服务器发送302重定向代码并指向他们 这个重定向在内部工作,但是如果你从外部连接,302重定向

我们目前正在从Pound切换到我们的反向代理的Nginx,除了一个站点之外,我所有的东西都可以工作

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

我们有一个网站,当然是供应商软件(horray!),基本上如果我们的用户去服务器发送302重定向代码并指向他们

这个重定向在内部工作,但是如果你从外部连接,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;
    }
}

我猜您遗漏了一些东西,但如果它真的那么简单,您可以使用return

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

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


因此,Nginx正在按其应有的方式工作。

无需担心,请参阅下面的答案。