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

推薦する

Linux環境でよく使われるMySQLコマンドの紹介

mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...

実践で遭遇するフロントエンドの基本(HTML、CSS)

1. div css マウスの手の形は cursor:pointer; です。 2. HTML の相...

MySQL Routerのインストールと展開

目次01 MySQLルーターの紹介MySQL Router とは何ですか? 02 MySQLルータの...

Navicat を使用して MySQL データベースをエクスポートおよびインポートする方法

MySql は、私たちが頻繁に使用するデータ ソースです。開発者が練習、小規模なプライベート ゲーム...

入力スクリプトなしでタイプ拡張を使用する方法

序文JS の型付けが弱く、記述基準が緩く、開発ツールのサポートが弱いため、前任者のコードをメンテナン...

CSS3はシームレスなスクロールと手ぶれ防止を実現します

質問画像とテキストのシームレスなスクロールは、一般的に携帯電話では良い効果をもたらしますが、一部のモ...

DockerにrockerChatをインストールし、チャットルームを設定するための詳細な手順

包括的なドキュメントgithubアドレスhttps://github.com/RocketChat/...

Web2.0製品と機能の簡単な紹介

<br />Web2.0とは何ですか? Web2.0にはソーシャルネットワーク製品とその...

mysql ルートユーザーを認証できず、Navicat リモート認証プロンプト 1044 の問題を解決します

まず解決策を見てみましょう #------------mysql の root ユーザーに権限を付与...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...

証明書を使用してリモート Docker サーバーに接続する方法

目次1. スクリプトを使用してDockerのTLSを暗号化する2. Dockerの設定を変更してリモ...

CentOS6で定期的にjarプログラムを実行するスクリプトをcrontabで実行する

1. 簡単なJavaプログラムを書く パブリッククラステストシェル{ パブリック静的voidメイン(...

React setStateデータ更新メカニズムの詳細な説明

目次setStateを使用する理由setStateの使用法非同期または同期更新要約するsetStat...

Linux コマンドライン操作 Baidu クラウドのファイルのアップロードとダウンロード

目次0. 背景1. インストール2. Baidu Cloudアカウントにログインする3. ファイルを...