2016-04-28 22 views
1

異なるファイルにnginxのサーバーセクションが2つあります。Nginxサーバー名の優先度

最初の1:

server { 
    server_name _; 
    ... 
} 

秒1:

server { 
    server_name ~someRegex; 
    ... 
} 

私はいくつかの制約がある - 私は、最初のサーバー部分を変更することはできません(つまり、私は最初のファイルを編集することはできません)

ドキュメントは、サーバー名の優先順位については、次の言葉:

  1. 正確な名前
  2. アスタリスクで始まる最長ワイルドカード名。 "* .example.org"
  3. アスタリスクで終わる最長ワイルドカード名。 「メール。*」(設定ファイル内の出現順)
  4. 最初に一致する正規表現

私はserver_name _を理解するようにキャッチオールサーバとして使用されています。

私はホストからのリクエストがあるときに、someRegexリクエストが最初のサーバーセクションで処理されます。 2番目のサーバーセクションでこれらの要求を処理する方法はありますか?

答えて

2

_は、単にserver_nameを無効にします。 this documentを参照してください。

serverブロックをデフォルトにすることは、特定のポートで最初に定義されるか、またはlisten ... default_server修飾子で定義されます。 this documentを参照してください。

正規表現が有効で、2番目のサーバーブロックが実際にnginxでインストールされていると仮定すると、構成は期待通りに機能します。 nginxを再読み込みした後にエラーログを確認してください。

nginx -t