Як я можу заблокувати запити з неправильним набором заголовка хоста?


12

Я використовую nginx для обслуговування свого веб-сайту. Я хотів би заблокувати всі запити, що надходять із заголовком HTTP “Host”, який не відповідає домену мого сайту.

Якщо бути конкретнішим, мій nginx.conf містить ці два серверні блоки:

server {
    # Redirect from the old domain to the new domain; also redirect
    # from www.newdomain.com to newdomain.com without the "www"
    server_name www.olddomain.com olddomain.com www.newdomain.com;
    listen 80;
    return 301 $scheme://newdomain.com$request_uri;
}

server {
    server_name newdomain.com localhost;
    listen 80;

    # Actual configuration goes here...
}

Я хотів би заблокувати (тобто "повернути" код статусу 444) будь-який трафік, хост якого не є www.olddomain.com, olddomain.com, www.newdomain.com або newdomain.com. Як я можу це зробити?

Відповіді:


14

Визначте сервер за замовчуванням

якщо ви чітко не визначите сервер за замовчуванням, nginx неявно використовуватиме перший сервер . тож просто створіть серверний блок для блокування невідомих хостів :

server {
  listen 80 default_server;
  return 444;
}

(ні, не потрібно додавати ім'я_сервера - оскільки це ніколи не буде відповідати).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.