nginx作为龙卷风代理:301redirect

我有nginx作为龙卷风的前端工作(这是运行基于Flask框架的应用程序)。 Nginx正在8080端口上运行。 但是,当Flask产生“301redirect”时,它不考虑8080端口。 我得到一个redirect到80端口,我没有听任何东西。

这是我的网站的nginxconfiguration:

server { listen 8080; server_name localhost; location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { expires off; } location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Port 8080; proxy_pass http://127.0.0.1:5000; } } 

有没有办法纠正这个问题?

proxy_redirect是你正在寻找的指令。 由于后端服务器redirect到端口80,所以问题的一部分就在那里。 在5000端口直接testing龙卷风,做redirect工作? 我的猜测是否定的。 弄清楚如何调整龙卷风或Flask以在redirect中包含适当的端口。

即使你不这样做,nginx可以使用proxy_redirect(s)来处理它。

 proxy_redirect default; proxy_redirect http://127.0.0.1:80/ /;