Nginx помещает браузер в цикл перенаправления при использовании нескольких серверных блоков

Nginx помещает браузер в цикл перенаправления при использовании нескольких серверных блоков

Я использую Nginx для размещения нескольких виртуальных хостов (илисерверные блокив номенклатуре Nginx). Все эти хосты используют один и тот же домен, каждому из которых назначен свой поддомен. Один поддомен попадает в бесконечный цикл перенаправления, что, очевидно, является нежелательным поведением.

Примечание.: Я отредактировал свое доменное имя и заменил его на <mysite>.

Корневой домен - www.<mysite>.comполучает запросы как и ожидалось. Он также перенаправляет HTTP-запросы на HTTPS. Он настроен в <mysite>-www.

Поддомен assets.<mysite>.comтакже получает запросы, как и ожидалось. Он не настроен на перенаправление HTTP на HTTPS, обслуживается любой из протоколов. Нет никаких проблем. Он настроен в <mysite>-holding.

Окончательный поддомен soft.<mysite>.comнастроен идентично, assets.<mysite>.comно он дает сбои. Вместо этого он отправляет браузер в цикл перенаправления, каждый раз указывая на https://soft.<mysite>.comЭто несмотря на то, что в файле конфигурации для этого vhost нет такой настройки. Он настроен в <mysite>-soft.

Конфигурация для <mysite>-www:

server {
    server_name www.<mysite>.com;

    listen 80 default_server ;
    listen [::]:80 default_server;

    location / {
        return 301 https://$server_name$request_uri;
    }

    root /var/www/html;
}

server {
    listen              443 ssl default_server;
    ssl_certificate /etc/letsencrypt/live/www.<mysite>.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/www.<mysite>.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;

    root /var/www/html;
    server_name www.<mysite>.com;
    error_page 404 /404.html;

    location / {
        limit_req zone=mylimit burst=20 nodelay;
        try_files $uri $uri/ =404;
        index index.html index.htm;
    }
}

Конфигурация для <mysite>-holding:

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

    server_name assets.<mysite>.com;

    ssl_certificate /etc/letsencrypt/live/assets.<mysite>.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/assets.<mysite>.com/privkey.pem; 
    include /etc/letsencrypt/options-ssl-nginx.conf;

    root /var/www/holding/html;

    location / {
        limit_req zone=mylimit burst=20 nodelay;
        try_files $uri $uri/ =404;
        index index.html;
    }

Файл конфигурации soft.<mysite>.comидентичен приведенному выше, за исключением того, что там, где написано «assets», написано «soft». И все же он входит в этот бесконечный цикл перенаправления.

Я пробовал менять директиву местоположения. Я консультировалсядокументыкоторые оказались лучше, чем ожидалось. Тем не менее, это зацикливается. Помощь будет оценена по достоинству!

решение1

На самом деле проблема была в следующем:

Я не создал правильную символическую ссылку с /sites-enabledна /sites-available, и он использовал старый дубликат, <mysite>-wwwчто и вызвало цикл перенаправлений.

Решением было настроить файл так, как указано выше в моем вопросе. Либо скопировать его в sites-enabled, либо правильно создать симлинк, это решит проблему для любого, кто оказался в подобной ситуации.

Моя вина.

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