У меня есть веб-сервер с NginX и каждый веб-сайт в другом файле конфигурации. Я заметил, что если у меня есть конфигурация сайта, которая больше не существует (без DNS-имени или какой-либо неправильной настройки), NginX просто перенаправляет меня на один из других моих сайтов. Всегда к одному и тому же, а не случайно. Как это работает? Как NginX решает, куда меня перенаправить, если конфигурация, которую он должен обслуживать, неверна?
Простой пример: если я ввожу IP-адрес сервера в браузер, я получаю загруженную конкретную страницу. OFC Я не установил ни одну из конфигураций для обслуживания IP-адреса. Вы знаете, как я могу изменить NginX для обслуживания чего-то другого или, может быть, сбросить ошибку? О да, об этом
Если я перейду на свой IP-адрес, ни один из файлов журнала ничего не регистрирует. Хотя очевидно, что загружается один сайт.
Это потому, что Nginx по умолчанию использует первый веб-сайт. Вы можете выбрать тот, который хотите использовать по умолчанию, с помощью default_server директива.
Я не хочу, чтобы Nginx отвечал ни на одно доменное имя, поэтому я делаю это, чтобы отправить нет ответа.
# This just prevents Nginx picking a random default server if it doesn't know which
# server block to send a request to
server {
listen 80 default_server;
server_name _;
return 444; # This means "go away", effectively
}
Если нет server
блок с соответствием server_name
, запрос будет отправлен на server
с default_server
заявление в этом Listen
директива или первая server
определенный блок (обычно первый в алфавите при чтении нескольких файлов конфигурации из каталога).
Видеть http://nginx.org/en/docs/http/request_processing.html и http://nginx.org/en/docs/http/server_names.htm