этот вопрос не дублирует это ссылка на сайт
Мое приложение создано в сети и разработано на 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 для проверки схемы, nginx дал нам 404 Not Found
ошибка. У меня была двойная перекрестная проверка с документацией nginx, в которой мне было сказано не использовать условие if, поскольку в большинстве случаев оно может быть злом, поэтому я придерживаюсь местоположения, но не могу его отлаживать больше.
Заранее спасибо.