Неверный HTTP_HOST на Django (EC2 Aws Ubuntu)
У меня проблемы с развертыванием моего приложения Django. Я запускаю его с помощью nohup на порту 8000 и использую nginx с настройкой SSL-сертификата, маскируя домен для порта 80.
Вот мои настройки Nginx по умолчанию:
server {
listen 80;
listen 443 ssl;
server_name fmartns.dev;
ssl_certificate /etc/letsencrypt/live/fmartns.dev/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/fmartns.dev/privkey.pem;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/fmartns.dev;
}
location / {
include proxy_params;
proxy_pass http://3.82.145.23:8000; # Port where Django is running
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Конфигурация Django's settings.py:
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['fmartns.dev', '*']
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
CSRF_TRUSTED_ORIGINS = ['http://fmartns.dev']
Журнал ошибок:
DisallowedHost at /
Invalid HTTP_HOST header: 'fmartns.dev,fmartns.dev'. The domain name provided is not valid according to RFC 1034/1035.
Есть идеи, как я могу решить эту проблему? Я пробовал различные руководства и конфигурации как в моем settings.py, так и в стандартных настройках nginx.
Вы включаете заголовки дважды: include proxy_params
и proxy_set_header
.
Поскольку вы уже включили (include proxy_params
), вы можете смело удалить три строки proxy_set_header
в конфигурации nginx.