Nginx - Настройка поддомена работает некорректно

Nginx - Настройка поддомена работает некорректно

Вначале я создал файл конфигурации, который работает правильно, когда я хочу получить доступ к http://www.domain.com:

server {
   listen 80;
   listen [::]:80;

   root /var/www/domain;
   index index.html

   server_name domain.com www.domain.com;
}

Затем я решаю создать еще один файл конфигурации для поддомена:

server {
   listen 80;
   listen [::]:80;

   root /var/www/subdomain.domain;
   index index.html

   server_name subdomain.domain.com;
}

Теперь проблема в том, что всякий раз, когда я хочу получить доступ к http://www.domain.comили http://subdomain.domain.com, в обоих случаях результатом является страница, которую я должен получить для поддомена.

Новый файл конфигурации корректно добавлен в site-enabledпапку:

ln -s /etc/nginx/site-available/subdomain.domain.conf /etc/nginx/site-enabled/subdomain.domain.conf

А вот так выглядят мои записи DNS:

domain.com. IN A <server_ip>
www.domain.com. IN A <server_ip>
subdomain.domain.com. IN A <server_ip>

решение1

Вы пропустили ;директиву index, которая заставляет nginx интерпретировать

index.html

server_name domain.com www.domain.com;

как содержимое indexдирективы. Следовательно, виртуальный хост не определен с помощью server_name, и nginx будет использовать виртуальный хост поддомена в качестве виртуального хоста catch-all.

Связанный контент