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

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

NB: Я отредактировал свое доменное имя и заменил его на .

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

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

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

Конфигурация для -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;
    }
}

Конфигурация для -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..com идентичен вышеприведенному, за исключением того, что там, где написано 'assets', написано 'soft'. И все же он попадает в этот бесконечный цикл перенаправления.

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

0
задан 3 August 2021 в 21:40
1 ответ

Как оказалось, проблема заключалась в следующем.:

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

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

Моя вина.

0
ответ дан 3 August 2021 в 21:53

Теги

Похожие вопросы