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

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

推薦する

Vue フロントエンドと Django バックエンドを使用して、一定期間内のデータをクエリする方法

序文開発プロセスでは、すべてのデータではなく特定の期間内のデータをクエリするなど、クエリのフィルタリ...

初心者がHTMLタグを学ぶ(2)

関連記事:初心者が学ぶ HTML タグ (1)初心者は、いくつかの HTML タグを理解することで ...

リンクAの意味論、書き方、ベストプラクティス

リンク A のセマンティクス、ライティング スタイル、およびベスト プラクティス。私は JavaEy...

JS ES の新機能: 拡張演算子の紹介

1. スプレッド演算子スプレッド演算子は 3 つのドット ... で、複数の引数 (関数呼び出しなど...

Linux で独自の Nexus プライベート サーバーを構築する方法

この記事では、Linuxサーバー上でDockerを使用してNexusプライベートサーバーを構築する方...

MySQLの暗黙的な変換問題の解決

1. 問題の説明 root@mysqldb 22:12: [xucl]> テーブル t1\G ...

Vue+element はローカル検索機能付きのドロップダウン メニューを実装します

必要:バックエンドは配列オブジェクトを返し、それがフロントエンドで配列に結合されます。配列は名前に従...

CSS パフォーマンスの最適化 - will-change の使用方法の詳細な説明

will-change は、要素にどのような変更が行われるかをブラウザに伝え、ブラウザが事前に最適化...

MySQLにおけるACIDトランザクションの実装原理の詳細な説明

導入いつものように、シーンから始めましょう〜インタビュアー:「トランザクションの4つの特性をご存知で...

Vue でのキープアライブコンポーネントの使用例

問題の説明(キープアライブとは何か)キープアライブ 名前の通り、アクティブな状態を維持します。誰が活...

Antd+vueは円形属性フォームの動的検証のアイデアを実現します

必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...

Linux で複数のファイルの名前を一度に変更する方法

序文日常業務では、すべての jpg ファイルを bnp に変更したり、名前の 1 を one に変更...

Vueでルーティング権限を動的に設定する主なアイデア

以前、インターネット上で動的ルーティング設定をいくつか見たことがありましたが、現在のプロジェクトとは...

LinuxサーバのSSHクラッキング防止方法(推奨)

1. Linuxサーバーは、/etc/hosts.denyを設定して、相手のIPがSSH経由でサー...

Apache POIの基本的な使い方の詳しい説明

目次基本的な紹介入門テスト (Excel ファイルからのデータの読み取り)ステップ1: Maven座...