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

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

推薦する

Windows システムで MySQL が起動しない場合の一般的な解決策

MySQL 起動エラーWindows 10 に MySQL をインストールする前は、net star...

JS でカルーセル効果を実現する 3 つの簡単な方法

この記事では、JSカルーセル効果の具体的なコードを実現するための3つの方法を紹介します。具体的な内容...

CSS を使用して適応型の幅と高さを持つ 16:9 の長方形を実装する例

先ほど、適応幅と高さが1:1の正方形を作成する方法について説明しました。 https://www.j...

MySQL テーブルをコピーする 3 つの方法 (要約)

テーブル構造とそのデータをコピーする次のステートメントは、データを新しいテーブルにコピーします。注:...

JavaScript で Webpack を使用するチュートリアル

目次0. Webpackとは1. Webpackの使用2. Webpackのコアコンセプト2.1 エ...

Mysql のデッドロックの表示とデッドロックの除去の詳細な説明

序文しばらく前にMysqlのデッドロック問題に遭遇したので、解決しました。問題の説明: Mysql ...

JavaScript を使用した Web 計算機の作成

この記事は主にJavaScriptを使用してWeb計算機を実現する効果を記録し、参考として掲載してい...

MySQL トランザクション分析

取引トランザクションはビジネス ロジックの基本単位です。各トランザクションは一連の SQL ステート...

MySQL の列から行への変換と年月グループ化の例

以下のように表示されます。 SELECT count(DISTINCT(a.rect_id)) zc...

あるテーブルからバッチデータをクエリし、それを別のテーブルに挿入する MySQL の完全な例

事前に言っておくNodejs はデータベースを非同期操作として読み取るため、データベースがデータを読...

Centos7 に mysql と mysqlclient をインストールする際に遭遇する落とし穴の概要

1. MySQL Yumリポジトリを追加するMySQL公式サイト>ダウンロード>MySQ...

JavaScriptはクリックするとランダムなグラフィックを生成します

この記事では、クリックするとランダムグラフィックの生成を実現するJavaScriptの具体的なコード...

vue+django でファイルをダウンロードする例

目次1. 概要2. Django プロジェクト3. Vueプロジェクト1. 概要プロジェクトで、ダウ...

VueにExcelテーブルプラグインを導入する方法

この記事では、Excelテーブルプラグインを導入するVueの具体的なコードを参考までに共有します。具...

MySQL データベースの基礎を始めるための一般的なコマンドの概要

この記事では、MySQL データベースの基礎を学ぶためによく使用されるコマンドを例を使って説明します...