1

У меня есть приложение, использующее Django, в конфиге Django есть список ALLOWED_HOSTS .

Приложение работало нормально с IP-адресом xxx.xxx.xxx.xxx в списке ALLOWED_HOSTS .

Затем он бросил ошибку Джанго
"Invalid HTTP_HOST header: 'ec2-xx-xxx-xxx-xxx.region.compute.amazonaws.com'. You may need to add 'ec2-xx-xxx-xxx-xxx.region.compute.amazonaws.com' to ALLOWED_HOSTS."

Хотя я могу это исправить, добавив новую запись в ALLOWED_HOSTS , я хотел бы знать, как / когда заголовок HTTP_HOST переключается между формами IP и DNS для AWS EC2.

Ссылка: Джанго ALLLOWED_HOSTS
https://docs.djangoproject.com/en/2.0/ref/settings/#allowed-hosts

1 ответ1

0

Заголовок Host: HTTP предоставляется клиентом (например, веб-браузером или библиотекой API) и обычно является точным именем, к которому клиенту было обращено обращение - в основном, оно берется из URL.

Поэтому, если вы попытаетесь получить доступ к http://ec2-xx.amazonaws.com/page.html , сервер получит:

GET /page.html HTTP/1.1
Host: ec2-xx.amazonaws.com

Хотя, если в середине HTTP-запроса есть что-то - например, обратный прокси-сервер или HTTP-балансировщик нагрузки - он может переопределить заголовок Host: своим собственным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .