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つのアイデア

推薦する

jsネイティブカルーセルプラグインの制作

この記事では、jsネイティブカルーセルプラグインの具体的なコードを参考までに共有します。具体的な内容...

Vue.js フロントエンドプロジェクト向け多言語ソリューションのアイデアと実践

目次1. 通常どのようなコンテンツを処理する必要があるか2. 基本的な考え方3. 具体的な実践の詳細...

vue-tableは追加と削除を実装します

この記事では、vue-table の追加と削除の具体的なコードを参考までに紹介します。具体的な内容は...

Linux でのデータベースのスケジュールバックアップの実装スクリプト

目次シナリオ: サーバーデータベースを毎日定期的にバックアップする必要がある1. まずバックアップス...

一般的な docker コマンドの概要 (推奨)

1. 要約:一般的に、次のカテゴリに分類できます。 Docker 環境情報 — docker [i...

Docker 入門インストールチュートリアル (初心者版)

ドクター紹介: Docker はコンテナ関連の技術です。簡単に言うと、さまざまなソフトウェアを実行で...

jsネイティブウォーターフォールフロープラグイン制作

この記事では、jsネイティブウォーターフォールフロープラグインの具体的なコードを参考までに共有します...

MySQLリモート接続失敗の解決策

以前、MySQLがローカルでは接続できるのにリモートでは接続できないという問題に遭遇したことがありま...

MySQL デッドロックのトラブルシューティングの全プロセス記録

【著者】 Liu Bo: Ctrip テクニカル サポート センターのシニア データベース マネージ...

Dockerイメージを素早くデプロイして実行する最新のIDEAプロセスの詳細な説明

背景docker とアイデアを使用して、Java Web の開発、展開、運用までのプロセス全体を実現...

WangEditor リッチ テキスト コンポーネントを Angular でカプセル化する方法

リッチ テキスト コンポーネントは、Web プログラムで、特にブログやフォーラムなどの Web サイ...

Windows ベースの MySQL 8.0.12 のインストール

このチュートリアルは Windows システムにのみ適用されます。インストールしたがまだインストール...

Linuxのバージョン情報を復号化する方法

Linux バージョンに関する情報を表示および解釈するのは、見た目よりも少し複雑です。単純なバージョ...

建国記念日が近づいています。JS を使用して、建国記念日風のアバターを生成する小さなツールを実装します。実装プロセスの詳細な説明

目次1. ページレイアウト2. 画像のアップロードと表示3. キャンバスを初期化する4. テンプレー...

Dockerコンテナでルート権限を取得する方法

まず、コンテナが稼働している必要がありますコンテナのCONTAINER IDは、sudo docke...