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

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

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

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

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

   server_name domain.com www.domain.com;
}

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

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, в обоих случаях результатом будет страница, которую я должен получить для поддомена.

Новый файл conf правильно добавлен в 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>

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

index.html

server_name domain.com www.domain.com;

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