nginx が default_server ディレクティブなしで IP アドレスに応答するのはなぜですか?

nginx が default_server ディレクティブなしで IP アドレスに応答するのはなぜですか?

私は2つのドメインのポート80をリッスンする2つのサイトを持つnginxウェブサーバーを持っていますdom.netdom.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にアクセスすると、次のURLにアクセスした場合と同じ応答が返ってくることです。http://server.dom.net/checkサイトのファイルにはディレクティブがありませんdefault_serverが、それでも nginx は IP アドレスに応答します。

そしてなぜhttp://server.dom.netそしてそうではないhttp://server.dom.se?

非常に混乱。

答え1

nginxのデフォルト設定は次のパスにあります: /etc/nginx/nginx.conf これを読んでみると、「http{}」構文のブロックがあり、そのブロックには次のような行があります。

include /etc/nginx/sites-enabled/*

nginxは、コメントで「Gerald Schneider」が述べたように、そのディレクトリ内のファイルを順番(アルファベット順)にロードします。

関連情報