Nginx server_name 지시어가 CNAME 레코드와 작동하는 방식

Nginx server_name 지시어가 CNAME 레코드와 작동하는 방식

상상하다

nginxListen at domain 에서 제공하는 웹사이트가 있습니다 myabc.domain.com.

구성은 nginx다음과 같습니다.

server {
  listen                      443 ssl;
  server_name                 myabc.domain.com`;
  root                        /home/ubuntu/portal;



  location / {

    # other directives
}

그런 다음 DNS 서버에 A 레코드를 추가합니다.

myabc.domain.com -> 123.123.123.123

잘 작동합니다.

그런 다음 CNAME 레코드를 DNS 서버에 추가했습니다.

myabc2.domain.com -> myabc.domain.com

myabc2.domain.com을 사용하여 브라우저에서 웹페이지에 액세스하려고 시도했는데 성공했습니다! ?

질문

server_name에서 헤더 가 . nginx인 사이트 에만 액세스를 허용하길 원합니다.hostmyabc.domain.com

브라우저는 자동으로 host내가 입력한 제목으로 제목을 설정합니다. (아마도)

nginx그렇다면 이 요청에 대한 액세스를 거부 하면 어떨까요 ?

답변1

다시 나타나는 것은 Assumption결코 좋은 일이 아닙니다 . Reading document가는 길입니다.

이 점을 지적해주신 @muru에게 감사드립니다.

정답은:

server_name내 질문은 일치하는 서버를 찾을 수 없는 특정 상황을 설명합니다. 이 경우 nginx요청은 해당 포트에서 수신 대기하는 첫 번째 지정된 서버로 라우팅됩니다. 이는 내 설정의 myabc.domain.com 서버입니다.

인용하다:Nginx 문서

관련 정보