Я использую Nginx для размещения нескольких виртуальных хостов (или блоков серверов в номенклатуре Nginx). Все эти хосты имеют один и тот же домен, каждому из которых присвоен свой собственный поддомен. Один поддомен попадает в бесконечный цикл перенаправления, что явно нежелательное поведение.
NB: Я отредактировал свое доменное имя и заменил его на
.
Корневой домен - www.
получает запросы, как и ожидалось. Он также перенаправляет HTTP-запросы на HTTPS. Он настроен в
.
Поддомен assets.
также получает запросы, как и ожидалось. Он не настроен на перенаправление HTTP на HTTPS, обслуживается любой из протоколов. Проблем не возникает. Он настроен в
.
Последний поддомен soft.
настроен идентично assets.
, но он не работает. Вместо этого он отправляет браузер в цикл перенаправления, каждый раз указывая на https://soft.
Это происходит, несмотря на отсутствие такого параметра в конфигурационном файле для этого vhost. Он настроен в
.
-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.
идентичен вышеприведенному, за исключением того, что там, где написано 'assets', написано 'soft'. И все же он попадает в этот бесконечный цикл перенаправления.
Я пробовал варьировать директиву location. Я проконсультировался с документацией, которая оказалась лучше, чем ожидалось. Все равно зацикливается. Помощь будет оценена по достоинству!
Как оказалось, проблема заключалась в следующем.:
Я неправильно создал символическую ссылку с /sites-enabled
на /sites-available
и использовал старый дубликат <mysite>-www
, что вызвало цикл перенаправления.
Решением было настроить файл, как указано выше в моем вопросе. Либо копирование его на сайты-включено, либо правильная символическая ссылка решит проблему для всех, кто находится в подобном затруднительном положении.
Моя вина.