有几个类似的问题,但我还没能弄清楚如何解决我的问题。
我在端口 80 上运行 nginx 实例,它充当其他一些 nginx 实例的反向代理(这些实例是运行 django 应用程序的不同实例的 gunicorn 的反向代理。)
当我导航到 gaiadev1/ 时,它可以正常工作。当我登录时,会发生重定向,将应用程序发送到 gaiadev:8080。我想阻止这种重定向发生,但我不知道该怎么做。
这是端口 80 上的代理的配置:
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;
}
}
以下是运行应用程序的 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;
}
}
答案1
在对 nginx 文档进行一番摸索之后,我找到了一个可以解决该问题的 proxy_redirect 设置。
location / {
proxy_pass http://gaiatest1;
proxy_redirect http://$proxy_host:9001 http://$host:80;
}