default_server
nginx.conf
server {
listen 80 default_server; # <-この設定値
server_name example.org www.example.org;
...
}
まず Host
ヘッダを検査してどのserverにルーティングするかを決める。
Host
ヘッダがどのserver_nameともマッチしない場合、または Host
ヘッダが含まれていない場合はデフォルトサーバーに振り分ける。
デフォルトサーバーは一番上に書いたserverか、listen
ディレクティブの default_server
を使って明示的に指定することもできる。
Host
ヘッダがマッチしないリクエストがデフォルトサーバーで処理されるというのを最初知らなくて、なぜ処理できているのか疑問だった。
Host
ヘッダがマッチしないリクエストを処理させたくない場合は、リクエストをドロップさせるデフォルトサーバを設定する。
server {
listen 80;
server_name "";
return 444;
}