ワイルドカード及び正規表現を利用した場合、どれが採用されるかについての 優先順位があり、以下の順になります。
*.test.jp
www.test.*
server { server_name www.test.jp; ... } server { server_name *.jp; ... } server { server_name *.test.jp; ... } server { server_name www.test.*; ... } |
従って、上の例の場合、www.test.jp
との一致が最優先され、
次に、www2.test.jp
については、2番目よりも3番目の
ワイルドカード名の方が長いので、3番目に一致します。最後に、
www.test.com
が4番目のサーバブロックに一致します。
server { server_name ~^www[0-9]*\.test\.jp$; ... } server { server_name ~test\.jp$; ... } server { server_name ~^[a-zA-Z0-9]+.test.jp; ... } |
上は正規表現についての例ですが、2番目の書き方は問題があります。
何故ならば、^
ga
がないために、後ろ test.jp
で終わる全てのサーバ名にマッチ
するために、その後ろの3番目のサーバには決してマッチすることが
ありません。このような場合には、2番目と3番目を入れ替える必要があり、
正規表現で複数のサーバを記述する場合には、特別のものから、
一般的なものへと並べる必要があります。