Перенаправление Django SSL на Heroku: «Слишком много перенаправлений» - PullRequest
1 голос
/ 17 апреля 2019

У меня развернуто веб-приложение в Heroku с настраиваемым доменным именем, управление которым через DNS осуществляется через CloudFlare.

Я хочу перенаправить HTTP запросов на HTTPS .

После установки SECURE_SSL_REDIRECT в значение True, в соответствии с документацией Django , я получаю ошибку Too many redirects (или site redirected you too many times) при доступе к сайту через пользовательский домен.

Вот что у меня в settings.py файле:

SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ('X-Forwarded-Proto', 'https')

Обратите внимание, что это перенаправление работает с доменом myapp.herokuapp.com.

Я использую DNS + Proxy на CloudFlare, и SECURE_PROXY_SSL_HEADER настроено в соответствии с документацией Heroku .

Вот журнал Heroku:

2019-04-17T11:21:08.514202+00:00 heroku[router]: at=info method=GET path="/" host=staging.mywebsite.com request_id=cf90ab0c-0895-4faf-aeea-5ee5fe5f970d fwd="115.87.132.194,172.68.242.176" dyno=web.1 connect=0ms service=2ms status=301 bytes=228 protocol=http

Ответы [ 2 ]

3 голосов
/ 11 июня 2019

Как я понимаю, Cloudflare заключается в том, что он использует прокси для ускорения вашего сайта. В сочетании с heroku это приведет к «Слишком много перенаправлений», если прокси включен.

enter image description here

Убедитесь, что облако в Cloudflare DNS не имеет оранжевого цвета и не будет использовать прокси перед вашим сервером.

Вы можете настроить SSL в героку, смотрите: https://devcenter.heroku.com/articles/ssl-endpoint

0 голосов
/ 17 апреля 2019

В есть примечание к документации Django для SECURE_SSL_REDIRECT о том, что:

Если установка этого параметра на True вызывает бесконечные перенаправления, это, вероятно, означает, что ваш сайт работает за прокси-сервером и не может сказать, какие запросы безопасны, а какие - нет. Ваш прокси, скорее всего, устанавливает заголовок для указания защищенных запросов; Вы можете исправить проблему, выяснив, что это за заголовок и настроив соответствующий параметр SECURE_PROXY_SSL_HEADER.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...