Skip to content

Запрет на обработку несуществующих доменов. Nginx

... или как сохранить тележку ресурсов сервера

По умолчанию Nginx обрабатывает все запросы и показывает HTML‑страницу из /var/www/html/. Когда на сервере один сайт, может показаться, что сделать его «сайтом по умолчанию» — хорошая идея. Но это не так.

Лучше явно запрещать обработку неизвестных хостов, чтобы:

  • не тратить ресурсы на мусорный трафик;
  • не светить содержимое случайного сайта на любые непонятные домены;
  • проще ловить неправильную DNS‑настройку.

Конфиг «запрет по умолчанию»

Создаём файл /etc/nginx/sites-available/0-default.conf:

nginx
server {
    return 444;
}

Код 444 — специальный внутренний код Nginx: он закрывает соединение без ответа, браузер показывает своё стандартное сообщение об ошибке соединения.

Создаём симлинк в sites-enabled:

bash
sudo ln -s /etc/nginx/sites-available/0-default.conf /etc/nginx/sites-enabled/0-default.conf
sudo nginx -t && sudo service nginx reload

Теперь любой запрос на домен, для которого нет своего server {}‑блока, будет получать 444, а не ваш «главный» сайт.

Откат изменений (на всякий случай)

bash
sudo rm /etc/nginx/sites-enabled/0-default.conf
sudo service nginx reload