ホームページ  >  記事  >  バックエンド開発  >  nginxの位置一致ルール

nginxの位置一致ルール

WBOY
WBOYオリジナル
2016-07-28 08:27:371151ブラウズ

位置照合コマンド

~ #波線は、大文字と小文字を区別して通常の照合を実行することを意味します
~* #大文字と小文字を区別せずに通常の照合を実行することを示します
^~ #^~は、オプションが一致する場合、通常の文字照合を意味します、このオプションのみに一致し、他のオプションとは一致しません
= #通常の文字の完全一致
@ #"@" 名前付きの場所を定義し、error_page、try_files などの内部方向に使用されます

位置一致の優先順位 (構成ファイル内の位置の順序に関係なく)
= 完全一致が最初に処理されます。完全に一致するものが見つかった場合、nginx は他の一致の検索を停止します。
クエリ一致では、通常の文字一致、正規表現ルール、および長いブロック ルールが優先されます。つまり、項目が一致する場合は、正規表現一致とより長い一致があるかどうかを確認する必要があります。
^~ はこのルールのみに一致し、nginx は他の一致の検索を停止します。それ以外の場合、nginx は他の位置指示の処理を続けます。
最後に、「~」と「~*」を使用して命令を照合します。対応する一致が見つかった場合、正規表現が存在しない場合、または一致する正規表現がない場合、nginx は他の一致の検索を停止します。逐語的に一致するディレクティブが使用されます。

場所の優先順位の公式ドキュメント

  1. クエリに正確に一致する = プレフィックスを持つディレクティブが見つかった場合、検索は停止します。
  2. 従来の文字列を持つ残りのディレクティブはすべて、この一致が ^~ プレフィックスを使用した場合、最長一致が最初に行われます。検索は停止します。
  3. 設定ファイルの定義順の正規表現です。
  4. #3 が一致した場合は、その結果が使用されます。それ以外の場合は、#2 の一致が使用されます。
  1. =接頭辞付きディレクティブはこれに厳密に一致します。クエリ。見つかった場合は、検索を停止します。
  2. 残りのすべての通常の文字列、最長一致。一致に ^? 接頭辞が使用されている場合、検索は停止します。
  3. 設定ファイルで定義された順序の正規表現。
  4. ルール 3 で一致が生成された場合、その結果が使用されます。それ以外の場合は、ルール 2 と同じものが使用されます。

例えば

location  = / {
  # 只匹配"/".
  [ configuration A ] 
}
location  / {
  # 匹配任何请求,因为所有请求都是以"/"开始
  # 但是更长字符匹配或者正则表达式匹配会优先匹配
  [ configuration B ] 
}
location ^~ /images/ {
  # 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
  [ configuration C ] 
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配以 gif, jpg, or jpeg结尾的请求. 
  # 但是所有 /images/ 目录的请求将由 [Configuration C]处理.   
  [ configuration D ] 
}

上記では、関連する内容を含め、nginx の位置一致ルールを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Nginx 設定メモ次の記事:Nginx 設定メモ