У меня есть приложение Django, развернутое на экземпляре Ubuntu 16.04 EC2 с использованием nginx и gunicorn.
К сожалению, после успешного развертывания с моим общедоступным IP-адресом обновление моей записи A с использованием общедоступного IP-адреса дало 404 Bad Request
ошибка в моем домене - даже после долгого ожидания, чтобы убедиться, что изменения DNS распространяются. Доступ к приложению по общедоступному IP продолжает работать. Я связался со своим хостом сервера имен, чтобы подтвердить, правильно ли я установил свои параметры записи A: они сказали, что изменение DNS оказалось успешным, но не помогло, поскольку оказалось, что это проблема на стороне AWS.
Есть ли конкретная причина, по которой использование моего общедоступного IP-адреса в моей записи A работает некорректно и не указывает на мое приложение?
Спасибо всем, кто может помочь мне заставить мой домен успешно указывать на мой развернутый проект django. В настоящее время доступ к приложению через общедоступный IP-адрес по-прежнему работает нормально, запись A, похоже, обновляется, но любые попытки загрузить домен (не прямой IP-адрес) выдают ошибку 400 Bad Request.
Разобрался с разрешением. Похоже, что использование общедоступного IP-адреса допустимо, но мне не удалось добавить свое доменное имя как в ALLOWED_HOSTS
файл и мою конфигурацию nginx.
Выполнив следующие действия, я смог добиться, чтобы мой домен успешно указывал на мое развертывание AWS EC2:
Я сделал три вещи:
ALLOWED_HOSTS
: ALLOWED_HOSTS = ['12.345.67.890', 'sub.domain.com', 'www.sub.domain.com']
server_name 12.345.67.890 sub.domain.com www.sub.domain.com;
sudo service nginx restart
sudo reboot
После этого моя страница успешно загрузилась.
У меня была такая же проблема, и я решил ее путем настройки рабочего класса в Gunicorn. Также у меня были проблемы с использованием gevent в python 3.7, лучше использовать 3.6.
Пример Django, Python 3.6:
Установить:
pip install gevent
Бегать:
gunicorn --chdir myApp myApp.wsgi --workers 2 --worker-class=gevent --bind 0.0.0.0:80 --timeout=90 --graceful-timeout=10