Я использую 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, либо правильно создать симлинк, это решит проблему для любого, кто оказался в подобной ситуации.
Моя вина.