Вначале я создал файл 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 будет использовать виртуальный хост поддомена в качестве универсального виртуального хоста.