这个问题与此无关关联
我的应用程序基于 Web,使用 Django 开发,通过 UWSGI 应用程序服务器部署,使用 nginx 作为反向代理。任务是从https到http对于特定的 URL,但这对我来说听起来并不简单,因为我试图应对以下 nginx 配置:
默认代理配置如下:
proxy_redirect off;
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_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
问题发生的位置块如下:
location ~ /target\.xml$ {
if ($scheme = https) {
return 302 http://$host$request_uri;
}
}
我们需要重定向的url如下:
**https://test-server.com/api/stage/7uibsiub3jbh3v3h/target.xml**
这里如果一个 url 包含 target.xml 并且是 https 方案,那么它应该重定向到 http,但我们收到的是重定向循环由于缺失而陷入困境if 条件在位置。我们一旦添加 if 条件来检查 nginx 给出的方案404 Not Found
错误。我仔细检查了 nginx 文档,它告诉我不要使用 if 条件,因为大多数情况下它都可能是坏的,所以我坚持使用位置,但我无法对其进行更多调试。
提前致谢。