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

промежуточный поддомен работает, но тестовый поддомен отражает родительский домен на nginx

Я создал постановка поддомен, скажем, example.com, и он отлично работает. Позже я создал test.example.com и он не обслуживает файлы из настроенного каталога. Он просто отражает родительский домен.

В диспетчере DNS создал тест субдомен, как и постановка, затем я снова создал файл конфигурации для nginx, как и при постановке, удалил предыдущую запись файла хоста, указывающую test.example.com на 127.0.0.1, перезапустил серверы, но напрасно.

Следует отметить, что я использую SSL-сертификат для родительского домена. Итак, имя сервера для родительского домена выглядит так:

server {

    listen 443 ssl;
    server_name example.com www.example.com
 ...
}
...
...
server {
    listen 80;
    server_name  example.com www.example.com;
    return 301 https://$host$request_uri;
}

и для тестового поддомена:

server {
    listen 80;
    server_name test.example.com
...
}

Может ли кто-нибудь указать мне путь к решению? Возможно, мне не хватает чего-то очень простого.

Ваш сервер ведет себя так, как будто новая конфигурация не вступила в силу.

Некоторые nginx конфигурации используют символическую ссылку на sites-enabled каталог.

Вам нужно перезагрузить nginx всякий раз, когда его конфигурация изменяется.

Использовать nginx -t для проверки файла конфигурации на наличие синтаксических ошибок. Если запущен nginx не удается перезапустить, он просто продолжает использовать старую конфигурацию.

Использовать nginx -T для отображения полной конфигурации во всех включаемых файлах, чтобы гарантировать чтение нового фрагмента конфигурации.

Очищайте кеш браузера между каждым изменением nginx конфигурация, чтобы избежать ошибочных результатов тестирования.

Это была действительно глупая ошибка, но она может случиться с кем угодно. Оказывается, дело было только в правильном создании символических ссылок для nginx vhosts. Так, например, если бы у меня был файл конфигурации с именем test, для создания символической ссылки я делал что-то вроде этого:

sudo ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/test

вместо этого:

sudo ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/

Надеюсь, это кому-то поможет.