Я постоянно получаю по электронной почте ошибку `Invalid HTTP_HOST header`.

Я использую Django==4.1.2. Я развернул свой сайт с помощью Docker на сервере Ubuntu, и я постоянно получаю сообщения 'Invalid HTTP_HOST header'.

  • [Django] ERROR (EXTERNAL IP): Недопустимый заголовок HTTP_HOST: 'www.google.com'. Возможно, вам нужно добавить 'www.google.com' в ALLOWED_HOSTS.
  • .
  • [Django] ERROR (EXTERNAL IP): Недопустимый заголовок HTTP_HOST: 'ad608a31b0be:8000'. Возможно, вам потребуется добавить 'ad608a31b0be' в ALLOWED_HOSTS.
  • [Django]
  • [Django] ERROR (EXTERNAL IP): Неверный заголовок HTTP_HOST: 'www'. Возможно, вам потребуется добавить 'www' в ALLOWED_HOSTS.
  • [Django] ERROR (EXTERNAL IP): Недопустимый заголовок HTTP_HOST: 'api.ipify.org'. Возможно, вам потребуется добавить 'api.ipify.org' в ALLOWED_HOSTS.

Вот код моего файла Docker

FROM python:3.9 as build-python


RUN apt-get -y update \
  && apt-get install -y gettext \
  # Cleanup apt cache
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

# Install Python dependencies
COPY requirements.txt /app/
WORKDIR /app


RUN pip install -r requirements.txt
RUN pip install --upgrade pip

### Final image
FROM python:3.9-slim


RUN groupadd -r tgcl && useradd -r -g tgcl tgcl

RUN mkdir -p /app/media /app/static \
  && chown -R tgcl:tgcl /app/

COPY . /app
WORKDIR /app

EXPOSE 8000

CMD ["gunicorn", "--bind", ":8000", "--workers", "4", "tgcl.asgi:application"]

Вот мои настройки Django

ALLOWED_HOSTS = ['app.thegoodcontractorslist.com', 'www.thegoodcontractorslist.com']

CORS_ALLOWED_ORIGINS = [
    "http://localhost:4200",
    "http://localhost:3000",
    "http://dev.thegoodcontractorslist.com",
]

CSRF_COOKIE_SECURE = True
CSRF_COOKIE_HTTPONLY = True
CSRF_TRUSTED_ORIGINS=['https://app.thegoodcontractorslist.com',]
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
USE_X_FORWARDED_HOST = True

Конфигурация Nginx для моего сайта блога

server {
    
    listen 443;
    listen [::]:443;
    
    server_name thegoodcontractorslist.com;
    
    root /var/www/html/TGCL;
 
    ssl_certificate      /var/www/html/TGCL/SSLFE/tgcl_combine.crt;
    ssl_certificate_key  /var/www/html/TGCL/SSLFE/private.key;
    
    return 301 https://www.thegoodcontractorslist.com$request_uri;  
    
}

server {

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2;
    access_log  /mnt/volume_nyc1_01/nginx_logs/access.log;
    error_log  /mnt/volume_nyc1_01/nginx_logs/error.log;
    server_name www.thegoodcontractorslist.com;
    root /var/www/html;
 
    ssl_certificate      /var/www/html/TGCL/SSLFE/tgcl_combine.crt; 
    ssl_certificate_key  /var/www/html/TGCL/SSLFE/private.key;
    
        proxy_ssl_server_name on;
    
    location ~ ^(/.*[^/])/$ {
        if ($query_string) {
        return 301 $scheme://$host$1?$query_string;
        }
        return 301 $scheme://$host$1;
    }
        
    
        location = /blog/ {
        rewrite ^/blog/(.*)/$ /blog/$1 permanent;
    }

    location /blog {
        try_files $uri $uri/ /blog/index.php?q=$uri&$args;
    }
    
    
    location ~ ^/blog/.*\.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }
    
    location ~ ^/blog/.*\.xml$ {
         try_files $uri $uri/ /blog/index.php?q=$uri&$args;
    }
    
    location ~ \.xml$ {
           proxy_pass http://127.0.0.1:8000;
           proxy_set_header X-Forwarded-Proto $scheme;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;

        }
    
    location / {
            limit_rate 8k;
            proxy_pass http://127.0.0.1:3000;
           proxy_set_header X-Forwarded-Proto $scheme;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
        
    }

}

server {
    listen 80;
    listen [::]:80;
    server_name thegoodcontractorslist.com www.thegoodcontractorslist.com;
    root /var/www/html/blog;
    index index.php index.html index.htm;
 
    location /blog {
        try_files $uri $uri/ /index.php?$args;
    }

    location / {
    return 301 https://www.thegoodcontractorslist.com$request_uri;  
    }    
 
}

Как я могу решить эту проблему?

Вернуться на верх