Nginx 서버 블록: 하위 도메인과 경로

Nginx 서버 블록: 하위 도메인과 경로

하위 도메인과 위치 경로의 차이점은 무엇입니까?
예:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name xxxx.yyy.com;

    location / {

        proxy_pass http://127.0.0.1:3000;

    }

}

또는

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name yyy.com;

    location / {

        proxy_pass http://127.0.0.1:3000;

    }
    location /xxxx/ {

        proxy_pass http://127.0.0.1:4000;

    }

}

분명히 분리 수준은 다릅니다. 첫 번째는 DNS 서버에서 분리되고 두 번째는 nginx 자체에서 요청 방향이 발생합니다. 내가 알고 싶은 것은 다른 솔루션보다 하나의 솔루션을 선택할 때의 주의 사항이 무엇인지입니다.

답변1

원하는 경우 NGINX가 IP 주소나 포트의 모든 요청에 ​​응답하도록 지시할 수 있습니다. 구성의 하위 도메인/도메인은 특정 "서버" 구성 블록의 응답을 제한합니다.

위치는아무것도 아님서버 블록에 구성된 모든 것에서 작동한다는 점을 제외하고는 도메인/하위 도메인과 관련이 있습니다. 일반적으로 NGINX의 경우 가장 먼저 수신할 도메인과 IP를 구성한 다음 완전히 잊어버립니다.

첫 번째 예제 설정 xxxx.yyy.com=>http://127.0.0.1:3000

두 번째 예 설정 yyy.com/xxxx=>http://127.0.0.1:4000

기본 도메인과 하위 도메인을 #2의 서버 블록에 배치하여 예제 #1을 예제 #2에 결합할 수 있습니다(두 경로가 기본 도메인과 하위 도메인 모두에 대해 작동하는지 상관하지 않는 경우).


server {

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

    server_name yyy.com xxxx.yyy.com;

    location / {

        proxy_pass http://127.0.0.1:3000;

    }

    location /xxxx/ {

        proxy_pass http://127.0.0.1:4000;

    }
}

따라서 다른 IP 주소에서 호스팅하지 않는 한 "DNS에서 분리"가 없다는 것을 알 수 있습니다. 당신의 유일한 분리는 길에 있습니다.

결합된 예제는 다음을 생성합니다.

xxxx.yyy.com=>http://127.0.0.1:3000

yyy.com=>http://127.0.0.1:3000

yyy.com/xxxx=>http://127.0.0.1:4000

xxxx.yyy.com/xxxx=>http://127.0.0.1:4000

하위 도메인은 경로가 아닙니다. 그것들은 완전히 다른 것입니다. 따라서 그것들을 비교하고 대조하는 것은 당신의 이해가 궤도에서 벗어났다는 것을 암시합니다.

아마도 과거 어딘가에 하위 도메인에 대한 디렉터리 하나와 기본 도메인에 대한 다른 디렉터리가 있었던 하위 도메인이 있었을 것입니다. 이것이 귀하의 문서 루트이며 이는 일부 웹 기반 서버 관리 도구가 기본적으로 구성하는 방식입니다. 사용자(또는 일부 도구 또는 시스템 관리자)가 하위 도메인과 경로를 생성하지 않는 한 하위 도메인과 경로 사이에는 고유한 연관성이 없습니다.

모든 도메인이나 하위 도메인 또는 위치 블록에 설정한 모든 경로를 파일 시스템의 /any/path/you/wan에 매핑할 수 있습니다.

위치는 PATHS에 관한 것입니다....그리고 여기서도 NGINX는 서버 블록과 일치하는 요청을 찾은 후 HTTP 요청의 경로와 일치하는 요청을 감시합니다.

/thispath /thatpath /foo /bar 또는 /foo/bar/on/thatpath 또는 와일드카드와 정규식을 사용할 수 있습니다. 다양한 디렉토리에서 제공되도록 다양한 파일 확장자를 구성할 수 있습니다. 또는 위치의 일반적인 용도는 NGINX에 PHP와 같은 특정 파일 유형을 처리하는 방법을 알려주는 것입니다.

여기에는 몇 가지 구성 예가 나와 있습니다.http://nginx.org/en/docs/beginners_guide.html

이 내용이 도움이 되었다면 공감하거나 솔루션으로 표시해 주세요. 감사해요!

답변2

주제는 nginx 구성이므로 두 도메인이 동일한 IP/서버를 가리키는 경우 DNS 수준 구분이 없습니다.
차이점은 어떤 도메인이 어떤 경로를 사용 가능/처리하는지입니다.
위치는 동일하지만 하나의 도메인은 다른 여러 도메인을 구성할 수 있습니다. 의 주요 용도입니다 server_name.

location블록은 도메인 이름/IP 뒤의 URL 부분입니다.
http://www.example.com/location/ 다양한 위치 블록/URL에서 다양한 로컬 경로를 사용할 수 있도록 만들 수 있습니다.

DNS로 얻을 수 있는 것은 nginx 구성과 다릅니다.
DNS 라운드 로빈을 사용하면 로드 밸런싱과 고가용성이 가능해집니다.
지리적 위치 기반 해결을 통해 콘텐츠를 더 빠르게 전달할 수 있습니다.

그것은 실제로 당신이 달성하고자 하는 것에 달려 있습니다.

관련 정보