如何用Nginx和uWSGI实现Flask应用重定向?配置报错求助
问题解决:Nginx重定向/代理路径错误
错误原因
uwsgi_pass指令的参数只能是后端服务的主机+端口(或upstream集群名称),不能直接带请求路径,你写的localhost:8081/Hello属于格式错误,导致Nginx启动校验失败。
解决方案
根据你的需求(访问/Hello时跳转到目标地址),分两种场景给出配置:
场景1:浏览器地址栏跳转(重定向)
如果需要用户浏览器地址栏直接变成http://localhost:8081/Hello,用return指令实现:
server { listen 8000; location /Hello { return 302 http://localhost:8081/Hello; # 若需要永久重定向(搜索引擎优化场景),改用 return 301 ... } }
场景2:反向代理(地址栏不变)
如果希望用户地址栏保持http://localhost:8000/Hello,但实际请求由localhost:8081处理,需修正uwsgi_pass的写法,确保路径正确传递:
server { listen 8000; location /Hello { include uwsgi_params; uwsgi_pass localhost:8081; # 若需要调整传递给后端的路径,可配合rewrite或uwsgi相关指令修改 } }
验证配置
修改后执行以下命令校验配置,无错误后重启Nginx生效:
sudo nginx -t sudo nginx -s reload
内容的提问来源于stack exchange,提问作者felipef
相关产品推荐
相关产品推荐

