У меня есть несколько доменов на моем сервере, на котором выполняется установка nginx следующим образом:
server {
listen 80;
server_name domain1.com www.domain1.com;
root /var/www/domain1/public_html;
index index.php index.html index.html;
}
server {
listen 80;
server_name domain2.com www.domain2.com;
return 301 https://plusgoogle.com/+somepage;
}
server {
listen 80;
root /var/www/other_domains/public_html;
index index.php index.html index.html;
}
Каждый серверный блок находится в отдельном файле (domain1.conf, domain2.conf и т. Д.)
Теперь к проблеме:
Я немного запутался, я мог понять, будет ли domain2 загружать корень других доменов, но почему другие домены перенаправляют на 301, когда я указал server_name в конфигурации вместе с 301?
Спасибо за помощь
Обновить
Вы убедились, что ваш браузер не кэширует - Пробовал открывать сайты на разных устройствах, думаю, что corevs,
На самом ли деле домены такие же разные, как в приведенном выше примере? - Да, вообще-то я не понимаю, почему бы мне не указать доменные имена: domain1 = tomasdostal.com, domain2 = autodopravadostal.cz, other domains = casull.info, Forgotmap.com и т. Д.
Присутствует ли конфигурация второго блока сервера где-нибудь еще или только в этом файле конфигурации - Я настраиваю 100% новый экземпляр aws, поэтому уверен, что он только там.
Вы должны прочитать, как nginx обрабатывает запросы.
В вашем случае запросы с неизвестным доменом попадают в дефолт сервер. Обычно первый, но может быть и любой. Чтобы четко определить сервер по умолчанию, вы должны использовать default_server
флаг в listen
директива. Итак, в вашем серверном блоке, который должен перехватить все остальные домены, вы должны написать:
listen 80 default_server;