nginx ロケーション優先度の詳細な説明

nginx ロケーション優先度の詳細な説明

場所表現タイプ

~ は大文字と小文字を区別して通常の一致を実行することを示します
~*は大文字と小文字を区別しない通常の一致を実行することを意味します
^~ は通常の文字マッチングを意味します。プレフィックスマッチングを使用します。一致が成功した場合、他の場所は一致しません。
= 一般的な文字の完全一致を実行します。つまり、完全一致です。
@ "@" は、error_page、try_files などの内部ターゲットに使用される名前付き場所を定義します。

場所の優先順位の説明

nginx の場所と構成における場所の順序はあまり重要ではありません。場所式のタイプ。同じタイプの式の場合、文字列が長い方が最初に一致します。

優先順位に従って指示を以下に示します。

第一の優先順位: 等号タイプ (=) が最も優先されます。一致が見つかると、それ以上の一致は検索されません。
2 番目の優先順位: ^~ 型の​​式。一致が見つかると、それ以上の一致は検索されません。
3 番目の優先順位: 正規表現タイプ (~ ~*) は 2 番目に高い優先順位を持ちます。正規表現に一致する場所が複数ある場合は、最も長い正規表現を持つ場所が使用されます。
4 番目の優先順位: 通常の文字列一致タイプ。プレフィックスで一致します。

場所の優先順位の例の設定項目は次のとおりです。

場所 = / {
# リクエストにのみ一致 /
[ 構成A ]
}

位置 / {
# / で始まるすべてのリクエストに一致します。ただし、同じタイプのより長い式がある場合は、長い式が選択されます。一致できる正規表現がある場合、# は最初に正規表現と一致します。
[ 構成 B ]
}

場所 /documents/ {
# /documents/ で始まるすべてのリクエストに一致します。ただし、同じタイプのより長い式がある場合は、長い式が選択されます。
#一致できる正規表現がある場合は、その正規表現が最初に一致します。
[ 構成 C ]
}

場所 ^~ /images/ {
# /images/ で始まるすべての表現に一致します。一致が成功した場合は、一致と検索を停止します。そのため、正規表現に一致する場所があっても使用されません[構成D]
}

場所 ~* \.(gif|jpg|jpeg)$ {
# gif jpg jpeg で終わるすべてのリクエストに一致します。ただし、/images/で始まるリクエストは構成Dを使用します。
[ 構成 E ]
}

リクエストマッチング例

/ -> 構成A
/index.html -> 構成 B
/documents/document.html -> 構成 C
/images/1.gif -> 構成 D
/documents/1.jpg -> 構成 E

上記の一致は、構成ファイル内で定義されている順序とは関係がないことに注意してください。

要約する

nginx location priority に関するこの記事はこれで終わりです。nginx location priority についての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx 構成ディレクティブの場所マッチャーの優先順位とセキュリティの問題
  • Nginx 設定場所のマッチング優先順位の簡単な分析

<<:  Node.jsをゼロから学ぶ

>>:  ウェブ開発におけるクロスドメインの理由に対する複数のソリューション

推薦する

Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)

1. Navicatの紹介1. Navicat とは何ですか? Navicat は強力な MySQ...

Zabbix による SQL Server の監視プロセスの詳細な説明

Zabbix による SQL Server の監視を見てみましょう。まずfreetdsをダウンロード...

CSSは複数の要素をボックスの両端に揃える効果を実現します

要素の両端を揃える配置レイアウトは、実際の開発のいたるところで見られます。これは、フレックスレイアウ...

jsは水平および垂直スライダーを実現します

最近、練習プロジェクトをしていたときにスライダーを使う必要があったので、調べてみました。まず、水平ス...

JavaScript関数の詳細な説明これを指す問題

目次1.関数内のこの方向1. 通常の機能2. コンストラクター3. オブジェクトメソッド4. イベン...

TomcatコンポーネントはWebサーバーのアーキテクチャの進化を示しています

1. tomcat とは誰ですか? 2. Tomcat は何ができますか? Tomcat は Web...

Vueカスタムコンポーネントはイベント修飾子を使用してピットレコードを踏む

序文今日、自作のコンポーネントを使っていたところ、突然、長い間忘れていたバブリングイベントに遭遇しま...

Docker-compose を使用して ELK クラスターを構築する方法

すべてのオーケストレーション ファイルと構成ファイルは、私の Github からアクセスできます。構...

MySQL でタイムゾーンを表示および変更する方法

今日、プログラムが間違った時刻を挿入し、フィールドがデフォルト値 CURRENT_TIMESTAMP...

Dockerイメージをパッケージ化し、リモートサーバーにプッシュしてk8sにデプロイする方法

目次1. Dockerファイル2. pom 構成3. イメージプッシュ4. k8s デプロイメント前...

HTML の基本概要推奨事項 (段落)

HTML段落段落は <p> タグによって定義されます。例<p>これは段落で...

Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明

目次序文1. 親コンポーネントが子コンポーネントに値を渡す2. サブコンポーネントのprops型制約...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

js のプロトタイプ、プロトタイプ オブジェクト、プロトタイプ チェーンの包括的な分析

目次プロトタイプを理解するプロトタイプオブジェクトを理解するインスタンスプロパティとプロトタイププロ...

純粋な CSS3 で美しい入力ボックスアニメーションスタイルライブラリを実現 (テキスト入力愛)

純粋な CSS3 で実装された美しい入力ボックス アニメーション スタイル ライブラリを共有します ...