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에 이 가상 호스트에 대한 구성 파일에 그러한 설정이 없음에도 불구하고 매번 이를 가리키는 리디렉션 루프에서 브라우저를 보냅니다 . 에서 구성됩니다 <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'자산', '소프트'라고 표시된 부분을 제외하면 위의 파일과 동일합니다. 그럼에도 불구하고 끝없는 리디렉션 루프에 들어갑니다.

위치 지시문을 다양하게 사용해 보았습니다. 상담했어요문서예상보다 좋았습니다. 그래도 반복됩니다. 도움을 주시면 감사하겠습니다!

답변1

막상 문제는 다음과 같았습니다.

/sites-enabled에서 까지 제대로 심볼릭 링크되지 않았 으며 리디렉션 루프가 발생한 /sites-available오래된 복제본을 사용하고 있었습니다 .<mysite>-www

내 질문에 위와 같이 파일을 구성하는 것이 해결책이었습니다. 이를 사용 가능한 사이트에 복사하거나 적절하게 심볼릭 링크하면 유사한 곤경에 처한 모든 사람의 문제가 해결됩니다.

맙소사.

관련 정보