私は2つのドメインのポート80をリッスンする2つのサイトを持つ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にアクセスすると、次の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」が述べたように、そのディレクトリ内のファイルを順番(アルファベット順)にロードします。