nginx가 default_server 지시문 없이 IP 주소에 응답하는 이유는 무엇입니까?

nginx가 default_server 지시문 없이 IP 주소에 응답하는 이유는 무엇입니까?

두 개의 도메인에 대해 포트 80을 수신하는 두 개의 사이트가 있는 nginx 웹 서버가 있습니다 dom.net.dom.se

에는 sites-enabled이들 각각에 대한 파일이 있습니다. dom.net.site이는 dom.se.site동일하지만 server_name지시문에 대한 것입니다. server_name dom.net *.dom.net;또는 입니다 server_name dom.se *.dom.se;. 나머지는 사실상 동일하지만 location디버깅에 도움이 되며 다음과 같습니다(.net 사이트의 경우).

  location /check {
    return 200 'dom.net';
    add_header Content-Type text/plain;
  }

내가 이해하지 못하는 것은 http://my-server-ip/check로 이동하면 다음과 같은 응답을 받는 이유입니다.http://server.dom.net/check. 사이트 파일에 지시문이 없지만 default_servernginx는 여전히 IP 주소에 응답합니다.

그리고 왜 골랐나http://server.dom.net그리고는 아니다http://server.dom.se?

매우 혼란.

답변1

다음 경로에 nginx에 대한 기본 구성이 있습니다. /etc/nginx/nginx.conf를 읽으면 "http{}" 구문이 있는 블록이 있고 해당 블록에는 다음과 같은 줄이 있습니다.

include /etc/nginx/sites-enabled/*

따라서 nginx가 수행할 작업은 주석에서 언급한 "Gerald Schneider"와 같이 해당 디렉토리에 파일을 순서대로(알파벳순) 로드하는 것입니다.

관련 정보