Назад | Перейти на главную страницу

Как заблокировать неопределенное имя_сервера в Nginx?

у меня есть два server {} блоки с доменами, которые мне нужно использовать.

Но я обнаружил проблему ... Если я настрою DNS другого домена, который указывает на мой сервер, nginx ответит правильно! Зачем?

Nginx должен ответить с ошибкой http! но он возвращает веб-сайт с таким же IP-адресом, почему? У меня нет имени сервера с этим доменом!

Спасибо!

Он отвечает, потому что у вас не настроен отдельный виртуальный хост по умолчанию. Всегда существует настроенный по умолчанию или резервный vhost, чтобы nginx знал, что делать в случае, если он получит запрос того типа, который вы отправили.

В документация nginx дает хорошее описание того, как выполняется сопоставление имени сервера и vhost, но вкратце я бы рекомендовал настроить новый vhost следующим образом:

server {
  listen 80 default_server;
  root /usr/share/empty;
}

(Возможно, вам придется создать /usr/share/empty если его еще нет)

Это просто предоставит пустой каталог всем, кто попадет на ваш сервер с нераспознанным именем vhost. Вы можете стать более интересным с различными типами страниц ошибок и еще много чего, если хотите.