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 の使い方の説明

推薦する

MySQL での order by の使用に関する詳細

目次1. はじめに2. 本文2.1 単一列のソート2.2 複数の列を並べ替える2.3 ソート方法2....

一般的なDocker Composeコマンドの詳細な説明

1. Docker Compose の使用方法は docker コマンドの使用方法と非常に似ています...

HTML リンク アンカー タグと SEO におけるその役割の概要

<a> タグは主に、ハイパーリンクまたはアンカー リンクとも呼ばれるリンクとブックマーク...

Js でオブジェクトのディープ オブジェクトを安全に取得するメソッドの例

目次序文文章パラメータ例Lodash 実装:トーキー機能: castPath関数: stringTo...

MYSQLについては、データ型と操作テーブルを知る必要があります

データ型と操作データテーブル1.1 MySQL 型: 整数 1.2 MySQL データ型: 浮動小数...

docker によってプルされたイメージがどこに保存されるかの詳細な説明

20200804追記:記事の内容に誤りがある可能性があります。他の回答を検索することもできます。 d...

1 つの記事で Nginx の現在の制限を理解する (簡単な実装)

Nginx は現在、最も人気のあるロード バランサーの 1 つです。インターネット トラフィックの...

フレックスレイアウトにおける画像変形の解決策の詳細な説明

フレックス レイアウトは現在よく使用されるレイアウト方法ですが、場合によっては小さな問題が発生するこ...

プロジェクトにaxiosをカプセル化する実際のプロセス

目次序文axiosカプセル化の利点パッケージのアイデア設定の優先順位axiosインスタンス構成1. ...

Linux インストール MySQL5.6.24 使用手順

Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...

近々ブラウザに導入される CSS :is() と :where() の簡単な分析

Safari (Technology Preview 106) および Firefox (バージョン...

MySQL の自動増分主キーに関する詳細な説明

目次特徴保存戦略自己増加の決定自動増分値の変更実行プロセス問題点自動増分ロックロック戦略バッチ挿入の...

仮想マシンのLinux初心者がIPを設定し、ネットワークを再起動する

仮想マシンを初めて使用する方や、仮想マシンに Linux をインストールしたばかりの方は、システムが...