Nginx 設定場所のマッチング優先順位の簡単な分析

Nginx 設定場所のマッチング優先順位の簡単な分析

序文

Nginx 構成のサーバー ブロック内の場所は、リクエスト URI を一致させるために使用され、異なる URI を異なる方法で処理できるようにします。

場所の種類とマッチング成功の条件

  • location = expression {} 完全一致。URI と式が完全に同じ場合にのみ一致が成功します。
  • location expression {} 通常の一致。URI の先頭部分の文字が式と同じであれば、一致は成功します。
  • location ^~ expression {} 通常の一致。URI の最初の部分が式と同じであれば、一致は成功します。
  • location ~ regex {} 正規表現によるマッチング(大文字と小文字を区別);
  • location ~* regex {} 正規表現マッチング(大文字と小文字を区別しません);

要約は、完全一致、通常一致、標準一致の 3 つのカテゴリに分類できます。

マッチングロジックと優先順位

Nginx に入るリクエストの場合、その URI は複数の場所の一致条件を満たす可能性がありますが、リクエストは最終的に 1 つの場所のロジックによってのみ処理される (リダイレクトはカウントされない) ため、一致時には優先順位の違いが存在する必要があります。 Nginx のマッチングロジックは次のとおりです。

1. 完全一致を実行する

リクエスト URI が location = と一致する場合 (完全一致条件を満たす場合)、location の内容が実行され、他の一致は実行されません。それ以外の場合は、次の項目を参照してください。

2. 通常のマッチングを実行する

次に、Nginx は URI をすべての通常の一致する場所 (^~ タイプまたは unsigned タイプに関係なく) と比較し、最も一致度の高い場所を見つけます。場所が ^~ タイプの場合、一致を停止し、場所の内容を実行します。一致度が最も高い場所が unsigned タイプの場合、この unsigned 場所を保持し、次の通常の一致を続行します。URI が通常の一致する場所の条件を満たさない場合は、次のステップに直接進みます。

3. 正規表現マッチングを実行する

正規表現のマッチングは、場所の順序に関係します。Nginx は上から下に向かってマッチングします。場所が一致すると、その場所のロジックが実行され、後続のすべての正規表現の場所は無視され、マッチングが終了します。正規表現が一致しない場合は、以前に予約された符号なしの場所が実行されます。以前に場所が予約されていない場合は、404 が直接返されます。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Nginx 構成ディレクティブの場所マッチャーの優先順位とセキュリティの問題
  • nginx ロケーション優先度の詳細な説明

<<:  純粋な JS を使用して vue.js で双方向バインディング機能を実装する方法

>>:  MySQL での replace と replace into の使い方の説明

推薦する

ウェブ上でチャートを描くための 9 つの優れた JavaScript フレームワーク スクリプト

ウェブ上でチャートを描くための 9 つの優れた JavaScript フレームワーク スクリプト 1...

MYSQL マスタースレーブ レプリケーションの知識ポイントの概要

単一の MYSQL サーバーが現在の Web サイトのトラフィックに対応できない場合の最適化ソリュー...

TinyEditorはシンプルで使いやすいHTML WYSIWYGエディタです

数日前、国産の XHTML エディタを紹介しました。今日は、有名な海外の Web デザイン ブログl...

Linuxファイルを表示するコマンドの詳細な説明

Linuxファイルを表示する方法ファイルの内容を表示するコマンド: catは最初の行からコンテンツを...

Element-UIの10の驚くべきトリックのまとめ

目次el-scrollbar スクロールバーel-uploadはクリックをシミュレートしますel-s...

nginx で複数のフロントエンド プロジェクトをデプロイするいくつかの方法

nginx を使用して 1 つのサーバーに複数のフロントエンド プロジェクトをデプロイする 3 つの...

ウェブページのグリッドデザインを考える

<br />元のアドレス: http://andymao.com/andy/post/8...

Alipay の Java 決済インターフェースを開発するための詳細な手順

目次最初のステップステップ2ステップ3ステップ4 Alipay 決済インターフェースへの接続に関する...

CentOS7 での MySQL 8.0.16 のインストールと設定のチュートリアル

MySQLの古いバージョンをアンインストールします(古いバージョンがない場合は、この手順をスキップし...

HTML における Div と table の違い (あらゆる側面から詳細に説明)

1: 速度と読み込み方法の違いdivとtableの違いは速度ではなく、読み込み方法です。速度はネット...

さまざまな種類のMySQLインデックス

インデックスとは何ですか?インデックスは、データベース ストレージ エンジンが指定されたデータをすば...

jsを使って簡単な計算機を作る

この記事では、jsで簡単な計算機を作成する具体的なコードを参考までに共有します。具体的な内容は次のと...

Windows サーバー管理におけるセキュリティの考慮事項

ウェブサーバー1. Webサーバーは、wev、cgi、asp機能を無効にするなど、不要なIISコンポ...

ミニマルなウェブサイトデザインの例

Web アプリケーション クラス1. みんなのためにダウンまたは私だけのためにこのウェブサイトは、ウ...

MySQLの始め方から諦め方まで徹底解説 - インストール

学ぶ内容1. ソフトウェアのインストールとサーバーの設定。 2. (オプションですが、強くお勧めしま...