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

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

推薦する

ウェブデザインのためのオンライン開発ツール10選の紹介

1. オンラインテキストジェネレーターBlindTextGenerator: デザイナーにとって、こ...

MySQL (8 および 5.7) の Docker インストール

この記事では、Dockerを使用してMySQLデータベースとリモートアクセス構成をデプロイする方法を...

Nginx の高同時実行最適化の実践

1. チューニングの必要性​ 私は、どのように書けばいいのか本当に分からないので、共有するために最適...

mysqlを使用して、URLから返されたhttp GETリクエストデータを記録します。

ビジネスシナリオの要件と実装ロジックの分析ビジネスでは、HTTP GET を使用してデータを要求する...

Windows で MySQL 5.7.17 圧縮バージョンをインストールするときに遭遇する落とし穴

まず、Windows 64 ビット用の最新の MySQL 5.7.17 コミュニティ圧縮バージョンを...

MySQLで負荷分散を実装する方法

序文MySQL は、クライアント/サーバー構造に基づく、高速、高性能、マルチスレッドのオープン ソー...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...

MySQL はどのようにしてデータベースの削除と暴走を効果的に防ぐことができますか?

目次セーフモード設定テスト1. where句なしで更新および削除する2. 非インデックスキーの削除3...

InnoDBのインデックスページ構造、挿入バッファ、適応ハッシュインデックスについての簡単な説明

InnoDB インデックスの物理構造すべての InnoDB インデックスは Btree インデックス...

Vue バインディング オブジェクト、配列データを動的にレンダリングできないケースの詳細な説明

プロジェクトシナリオ: Dark Horse Vueプロジェクト管理の実践、製品分類の取得、拡張バー...

Windows での MySQL の詳細なインストール手順と基本的な使用方法

目次1. MySQLをダウンロードする2. MySQLをインストールする3. MySQL の基本的な...

Html/Css (初心者が最初に読むべきガイド)

1. Web標準の意味を理解する - なぜWeb標準を採用するのか***** コンテンツとスタイル...

Linux デスクトップ用に Openbox を設定する方法 (推奨)

この記事は、「24 Days of Linux Desktop」の特別シリーズの一部です。 Open...

JavaScript データ構造 双方向リンクリスト

単方向リンク リストは、先頭から末尾、または末尾から先頭への方向のみを走査できます。そのため、単方向...

入力できない無効な値はアクションレイヤーに渡すことができません

フォームを入力不可にしたい場合は、フォームを次のように設定します。コードをコピーコードは次のとおりで...