nginx.confに複数の「サーバー」ブロックがあります。ドキュメントは、server_nameマッチングが行われる順序について間違っているようです。
私のconfは次のようになります:
server {
listen 80
server_name domain.com *.domain.com
# do stuff
}
server {
listen 80
server_name sub.domain.com *.sub.domain.com
# do something else
}
ドキュメントで最初のサーバーに送信する必要があると示されている場合、host = www.sub.domain.comのリクエストが正しい場所(2番目のサーバー)に送信される理由を理解しようとしています。
Nginxのドキュメントでは、サーバーブロックの一致が「順番に」チェックされることを示しています。つまり、ホスト* .sub.domain.comでの要求はすべて、2番目のサーバーではなく、最初のサーバーでキャッチする必要があります。(http://wiki.nginx.org/HttpCoreModule#server_name)
また、*ワイルドカードは任意の数のサブドメイン部分と一致するため、*。domain.comはwww.sub.domain.comと一致します。(http://nginx.org/en/docs/http/server_names.html#wildcard_names)
このドキュメントが間違っている場合、実際に一致する順序は何ですか?