停止 nginx 反向代理重定向

can*_*fus 5 nginx redirect

有几个类似的问题,但我一直无法弄清楚如何解决我的问题。

我在端口 80 上运行一个 nginx 实例,它充当 nginx 其他一些实例的反向代理(这些实例是运行 django 应用程序不同实例的 gunicorn 的反向代理。)

当我导航到 gaiadev1/ 时,它可以工作。当我登录时,会发生重定向,将应用程序发送到 gaiadev:8080。我想阻止这种重定向的发生,但我不知道该怎么做。

这是端口 80 上的代理的 conf:

upstream gaiadev1 {
    server 127.0.0.1:8001;
    keepalive 32;
}
upstream gaiatest1 {
    server 127.0.0.1:9001;
    keepalive 32;
}
server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    server_name gaiadev1;

    location / {
        proxy_pass http://gaiadev1;
    }
}

server {
    listen 80;
    listen [::]:80;

    server_name gaiatest1;

    location / {
        proxy_pass http://gaiatest1;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是运行应用程序的 nginx 实例的配置:

upstream gaia {
    server %s;
    keepalive 32;
}

server {
    listen %s default_server;
    listen [::]:%s default_server ipv6only=on;

    # Make site accessible from http://localhost/
    server_name localhost;


    location /static/ {
        root /gaia;
        index index.html;
    }
    location / {
        proxy_pass http://gaia;
    }
}
Run Code Online (Sandbox Code Playgroud)

can*_*fus 2

经过一番摸索 nginx 文档后,我找到了 proxy_redirect 的一个设置来解决这个问题。

location / {
    proxy_pass http://gaiatest1;
    proxy_redirect http://$proxy_host:9001 http://$host:80;
}
Run Code Online (Sandbox Code Playgroud)