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をゼロから学ぶ

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

推薦する

MySQLは現在の日付と時刻を取得する関数

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...

Web フォントの読み込みを最適化する方法をご存知ですか?

タイトル通りです!一般的に使用される font-family はブラウザの組み込みフォントを読み込み...

Facebook 出会い系サイトデザインのユーザー エクスペリエンス分析

<br />関連記事: Facebookの情報アーキテクチャの分析 元記事: http:...

Nginx 仮想ホストを構成する 3 つの方法 (ドメイン名に基づく)

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮...

XHTML ドキュメントで JavaScript と CSS を正しく使用する方法

ますます多くのウェブサイトで、XHTML が HTML4 に取って代わって急速に普及しています。しか...

HTML で入力テキスト入力キャッシュのクリアを禁止する 2 つの方法

ほとんどのブラウザはデフォルトで入力値をキャッシュし、ctl+F5 を使用して強制的に更新することに...

ルートパスワードを変更するための MySQL 設定、MySQL サーバー接続、MySQL 共通コマンド図

1. ルートパスワードの設定と変更mysql が起動しているかどうかを確認します。起動していない場合...

Jupyter Notebook で JavaScript を実行する方法

その後、VSC で Jupyter Notebook を使用する方法も追加しました...アナコンダを...

ReactのuseEffectクロージャの落とし穴についての簡単な説明

問題コードuseEffectによって発生したクロージャの問題コードを見てみましょう 定数 btn =...

この記事はPReact10.5.13のソースコードを理解するのに役立ちます

目次render.js 部分create-context.js 部分差分部分Reactのソースコード...

vue keep-alive の簡単な概要

1. 機能主にコンポーネントの状態を保持したり、再レンダリングを回避したりするために使用されます。 ...

CSS3 マウスホバー遷移ズーム効果

以下は、純粋な CSS で記述された画像マウスホバーズーム効果です。実際、基本原理は非常に単純です。...

MySQLのロックについて理解しておくべきこと

1. はじめにMySQL ロックは、その範囲に応じて、グローバル ロック、テーブル ロック、行ロック...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...

MySQLトランザクション処理の使用方法とサンプルコードの詳細な説明

MySQL トランザクション サポートは、MySQL サーバー自体にバインドされているのではなく、ス...