Как решить проблему 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 и попробовать снова. На странице ошибки вы увидите "Причину неудачи", которую вы можете опубликовать здесь.

Вернуться на верх