title: How to stop Nginx redirect if HOST HEADER is incorrect
body: <p>I have been trying to solve this issue for quite awhile now. Bots are hitting my sites hard with INVALID HOST HEADERS and Nginx forwards these requests to Gunicorn/Django. I need to stop them at Nginx. I have tried every solution I can find on SO, and elsewhere, but none seem to work for my setup.</p>
  <p><strong>Nginx.conf</strong>:</p>
  <pre><code>upstream backend_server {
      server backend:8000;
  }
  
  upstream backend_asgi {
      server backend_asgi:8001;
  }
  
  server {
      listen 80;
  
      location /.well-known/acme-challenge/ {
          root /var/www/certbot;
      }
  
      location ~* ^/(api|admin|static|v2) {
          return 301 https://$host$request_uri;
      }
  
      location / {
          return 301 https://$host$request_uri;
      }
  }
  
  server {
      listen 443 ssl;
      listen [::]:443 ssl;
      server_name example.site *.example.site;
  
      ssl_certificate /etc/letsencrypt/live/example.site/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/example.site/privkey.pem;
      include /etc/letsencrypt/options-ssl-nginx.conf;
      ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
  
      location /ws/ {
          proxy_pass http://backend_asgi;
  
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection &quot;upgrade&quot;;
  
          proxy_redirect off;
          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_set_header X-Forwarded-Host $server_name;
      }
  
      location ~ ^/v2(?:/(.*))?$ {
          root /usr/share/nginx/html;
          index index.html;
          try_files $uri $uri/ /v2/index.html =404;
      }
  
      location /backend_static/ {      
          alias /backend/assets/;
      }
  
      location /media/ {      
          alias /backend/media/;
      }
  
      location ~* ^/(api|admin) {
          proxy_pass http://backend_server$request_uri;
          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_set_header X-Forwarded-Proto $https;
          proxy_connect_timeout 360s;
          proxy_read_timeout 360s;
      }
  
      location / {
          proxy_pass http://backend_server$request_uri;
          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_set_header X-Forwarded-Proto $https;
          proxy_connect_timeout 360s;
          proxy_read_timeout 360s;
          # Set upload size for videos to be 500MB
          client_max_body_size 500M;
      }
  }
  </code></pre>
  <p>What can i add to my Nginx configuration to stop invalid host headers, given that I have a wildcard subdomain and bots are also using HOST HEADERS w/ subdomains?</p>