Django DisallowedHost: “Недопустимый заголовок HTTP_HOST”, несмотря на правильную конфигурацию ALLOWED_HOSTS и nginx
Я запускаю приложение Django 4.2.20 на сервере Ubuntu с Gunicorn и nginx в качестве обратного прокси-сервера. Однако при доступе к веб-сайту через общедоступный IP я получаю следующую ошибку:
Exception Type: DisallowedHost at /
Exception Value: Invalid HTTP_HOST header: '89.168.121.242,89.168.121.242'. The domain name provided is not valid according to RFC 1034/1035.
Я уже проверил следующие: РАЗРЕШЕННЫЕ хосты в settings.py:
ALLOWED_HOSTS = ['ipaddress', 'localhost']
конфигурация nginx (/etc/nginx/доступные сайты/семейное приложение):
server {
listen 80;
server_name ipaddress;
location /static/ {
alias /home/familyapp/FamilyApp/familyapp/static/;
}
location /media/ {
alias /home/familyapp/FamilyApp/media/;
}
location / {
include proxy_params;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://unix:/home/ubuntu/sockets/gunicorn.sock;
}
}
проверка синтаксиса и перезапуск nginx
sudo nginx -t # No errors
sudo systemctl restart nginx
sudo systemctl restart gunicorn
Gunicorn запущен вручную
gunicorn --bind unix:/home/ubuntu/s
В конце '89.168.121.222.' есть дополнительная точка (.), которая делает его недействительным, удалите точку.
ALLOWED_HOSTS = ['89.168.121.222', 'localhost']
Исправьте nginx server_name
и proxy_set_header
.
server {
listen 80;
server_name 89.168.121.222;
location /static/ {
alias /home/familyapp/FamilyApp/familyapp/static/;
}
location /media/ {
alias /home/familyapp/FamilyApp/media/;
}
location / {
include proxy_params;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://unix:/home/ubuntu/sockets/gunicorn.sock;
}
}