Как решить проблему ERR_TOO_MANY_REDIRECT при развертывании веб-приложения django rest framework в Azure?
Я развернул веб-приложение на базе django restframework на Heroku и Azure.
То же приложение на Heroku работает нормально.
Но когда я обращаюсь к Azure, возникает ошибка ERR_TOO_MANY_REDIRECT.
Я погуглил и обнаружил, что отключение SECURE_SSL_REDIRECT решает ошибку ERR_TOO_MANY_REDIRECT. Однако, вместо этого возникает ошибка 403 CSRF.
Мне нужно найти другой способ исправить ERR_TOO_MANY_REDIRECT или найти способ исправить 403 CSRF ошибку.
Может ли кто-нибудь помочь мне решить эту проблему?
Если ваше приложение находится на "Azure App Service", HTTPS-соединение будет прервано до того, как оно достигнет вашего веб-рабочего. Вместо этого ваше приложение увидит входящий HTTP-запрос. В этом случае вам нужно установить значение SECURE_SSL_REDIRECT = False
. Если вы хотите обеспечить HTTPS (что является хорошей практикой), вы можете сделать это в настройках Azure: https://docs.microsoft.com/en-us/azure/app-service/configure-ssl-bindings#enforce-https
Об ошибке, связанной с CSRF: поскольку Azure транслирует HTTPS в HTTP, вам нужно настроить Django на разрешение POST-запросов с другой схемы ( начиная с Django 4.0), добавив это в settings.py
:
CSRF_TRUSTED_ORIGINS = ["https://YOUR-DOMAIN.com", "https://www.YOUR-DOMAIN.com"]
Если это не решит вашу проблему, вы можете временно установить DEBUG = True
в production и попробовать снова. На странице ошибки вы увидите "Причину неудачи", которую вы можете опубликовать здесь.