Nginx ロケーション設定(ロケーションのマッチング順序)の詳細な説明

Nginx ロケーション設定(ロケーションのマッチング順序)の詳細な説明

ロケーションは「位置指定」を意味し、主にさまざまな位置指定のための URI に基づいています。これは仮想ホストの構成に不可欠です。

ロケーションは、Web サイトのさまざまな部分をさまざまな処理方法に配置できます。

1. 場所の基本構文

場所 [=|~|~*|^~] パターン {

}

=: 厳密な一致。クエリが一致すると、検索は停止し、リクエストは直ちに処理されます。
~: 大文字と小文字を区別して一致させます (正規表現を使用できます)。
~*: 大文字と小文字を区別しない一致 (正規表現を使用できます)。
^~: このプレフィックスを通常の文字列で使用すると、パスが一致する場合に正規表現をテストしないように nginx に指示します。

2. 位置情報の仕組み

3. 簡単な例で上記の図の結論を証明します

正規表現を使用しないマッチング処理

場所 = / {
   ルート /var/www/html/;
   インデックス index.htm index.html;
}

位置 / {
   ルート /usr/local/nginx/html;
   インデックス index.html index.htm;
}

位置情報の設定は上記の通りです。http://xxx.com/ にアクセスすると、位置情報の取得プロセスは次のようになります。
1: 完全一致は「/」にヒットし、インデックス ページは index.htm なので、要求されたアドレスは http://xxx.com/index.htm になります。
2: 再び「/index.htm」にマッチします。今回は内部リダイレクトURIがすでに「/index.htm」であり、通常のマッチ「/」がヒットします。ルートディレクトリは/usr/local/nginx/htmlです。
3: 最終結果は/usr/local/nginx/html/index.htmにアクセスすることです

正規表現によるマッチング処理

位置 / {
  ルート /usr/local/nginx/html;
  インデックス index.html index.htm;
}

場所 ~ 画像 {
  ルート /var/www/;
  インデックス index.html;
}

http://xx.com/image/logo.png にアクセスした場合。このとき、URIは「/image/logo.png」であり、共通一致「/」と正規一致「~ image」に一致します。ただし、上図の一致プロセス分析によると、最終的には正規一致が有効になります。

したがって、最終的なアクセス アドレスは /var/www/image/logo.png になります。最終的な一致パスを /var/www/logo.png にしたい場合は、正規表現の「root /var/www/」を「alias /var/www/」に変更できます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginx ロケーション設定の詳細な説明
  • nginxのlocationディレクティブの詳細な説明
  • Nginx サーバーにおけるロケーション設定の詳細な説明
  • Nginx サーバーにおけるロケーション設定の基本的なポイントの分析
  • Nginx の基本的なロケーション構文と関数の設定例

<<:  Vue3+el-tableは行と列の変換を実現します

>>:  データベースの水平セグメンテーションを実装するための2つのアイデア

推薦する

垂直方向の中央揃えをエレガントに実現する方法を教えます(推奨)

序文CSS で水平方向と垂直方向に中央揃えする方法はたくさんあります。この記事で紹介する方法は非常に...

マークアップ言語 - テキストの CSS スタイルを指定する

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

MySQLのREDOログ(リドゥログ)とロールバックログ(アンドゥログ)の詳しい説明

序文:前回の記事では、MySQL システムでよく使用されるログをいくつか説明しました。実は、トランザ...

Html+CSS 描画三角形アイコン

まずはレンダリングを見てみましょう: XML/HTML コードコンテンツをクリップボードにコピー&l...

Pengyou.com モバイル クライアントのダウンロード ページのデザイン共有 (画像とテキスト)

まずは簡単なデータを見てみましょう。 Googleが発表したレポートによると、 ①中国の都市の97%...

HTMLページのネイティブVIDEOタグはダウンロードボタン機能を隠します

Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...

Office ファイルのオンライン プレビュー用の Vue サンプル コード

最近、電子アーカイブに取り組んでおり、バックエンドではファイルの Huawei Cloud OSS ...

iframe ページパラメータの文字化けの問題について議論

非常に珍しいパラメータ文字化けの問題に遭遇しました。まずページを見てみましょう写真に示すように、月次...

mysql ワイルドカード (sql 高度なフィルタリング)

目次まず、値の一部と一致させるために使用される特殊文字であるワイルドカードについて簡単に紹介します。...

ドラッグ効果を実現するための js オブジェクト指向メソッド

この記事では、ドラッグアンドドロップをJSオブジェクト指向で実装するための具体的なコードを参考までに...

エラー mysql テーブル 'performance_schema...解決方法

テスト環境は、JDBCドライバを使用してMariaDB 5.7でセットアップされています。 <...

MySQL マルチバージョン同時実行制御 MVCC の基本原理の分析

目次1 トランザクションの同時実行で発生する問題1.1 ダーティリード1.2 繰り返し不可能な読み取...

JavaScriptの原理と方向性

これが何を指しているのかをどのように判断するのでしょうか? ①グローバル環境で呼び出された場合はwi...

nginx設定ファイルの解釈の詳細な説明

nginx 設定ファイルは主に 4 つの部分に分かれています。 main{#(グローバル設定) ht...

MySql ビュー、トリガー、ストアド プロシージャに関する簡単な説明

ビュービューとは何ですか?ビューの役割は何ですか?ビューは仮想テーブルであり、データ自体を含まない論...