У меня есть веб-сервер nginx с двумя сайтами, которые прослушивают порт 80 для двух доменов: dom.net
иdom.se
В sites-enabled
у меня есть файлы для каждого из них, dom.net.site
и dom.se.site
, которые идентичны, за исключением server_name
директивы. Это либо server_name dom.net *.dom.net;
или server_name dom.se *.dom.se;
. Остальное практически то же самое, но для того, location
чтобы помочь мне отладить, и это выглядит так (для сайта .net):
location /check {
return 200 'dom.net';
add_header Content-Type text/plain;
}
Я не понимаю, почему, когда я захожу на http://my-server-ip/check, я получаю тот же ответ, что и при переходе наhttp://server.dom.net/check. У меня нет default_server
директив ни в одном из файлов сайта, и nginx все равно отвечает на IP-адрес.
И почему он выбралhttp://server.dom.netи неhttp://server.dom.se?
Очень смущенный.
решение1
Конфигурация по умолчанию для nginx находится по следующему пути: /etc/nginx/nginx.conf. Если вы ее прочитаете, то увидите блок с синтаксисом «http{}», а в этом блоке есть строка, которая гласит:
include /etc/nginx/sites-enabled/*
Итак, nginx загрузит файлы в этом каталоге в порядке (в алфавитном порядке), как упомянул «Джеральд Шнайдер» в комментарии.