У меня есть веб-сервер с NginX и каждый веб-сайт в разных файлах конфигурации. Я заметил, если у меня есть конфигурация сайта, которая больше не существует (без DNS-имени или неправильных настроек), NginX просто перенаправляет меня на один из других моих сайтов. Всегда к тому же, а не случайно. Как это работает? Как NginX решает, куда перенаправить меня, если конфигурация, которую он должен обслуживать, неверна?
Простой пример: если я ввожу IP-адрес сервера в браузер, я получаю эту конкретную страницу загруженной. OFC Я не знаю ' t установить любую из конфигураций для обслуживания 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
, запрос будет отправлен на сервер
с оператором default_server
в его директиве Listen
или определен первый блок server
(обычно первый в алфавите при чтении нескольких файлов конфигурации из каталога ).
См. http://nginx.org/en/docs/http/request_processing.html и http://nginx.org/en/docs/http/server_names.htm