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

推薦する

Win7 の VMware 仮想マシンに Linux7.2 をインストールするインターネット アクセス構成チュートリアル

参考までに、win7システム上のVMware仮想マシンにlinux7.2インターネットアクセス構成を...

単一の MySQL テーブルで数千万のデータを処理するアイデアを共有する

目次プロジェクトの背景改善案データ特性を観察するマルチプロセスアイデアの要約データ処理スキルプロジェ...

Vueのインストールと使用

目次1. Vueのインストール方法1: CDNの導入方法2: 直接ダウンロードしてインポートする方法...

Linuxプロセスネットワークトラフィック統計の実装プロセス

序文Linux には、ネットワーク接続、プロセス、およびその他の情報をリアルタイムで収集するための対...

mysqldump を使用して MySQL データをバックアップする方法

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

JS は複数のタブを切り替えるカルーセルを実装します

カルーセルアニメーションは、ページの外観とインタラクティブなパフォーマンスを向上させることができます...

W3C チュートリアル (4): W3C XHTML アクティビティ

HTML は、World Wide Web 上で公開するために使用されるハイブリッド言語です。 XH...

sqlとmysqlの違いは何ですか?

SQL とは何ですか? SQL はデータベースを操作するために使用される言語です。 SQL はすべ...

Tomcatの各ポートの機能の詳細な説明

tomcat 設定ファイルから、tomcat の起動時にデフォルトで 8080 (8443)、800...

CSS セレクターの重みの理解(個人テスト)

コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...

元のPATHを上書きしてコマンドが見つからないというメッセージが表示されるコマンド失敗の問題を解決する方法

同僚から、LINUX サーバー上の多くのコマンドが (コマンドが見つかりません) というプロンプトで...

QT が MYSQL データベースに接続するための詳細な手順

最初のステップは、対応するデータベースモジュール(sql)をプロジェクトファイル( .pro )に追...

Axios を使用して Vue2 がリクエストを開始する詳細なプロセス記録

目次序文Axiosのインストールと設定シンプルなGETリクエストを開始するPOSTリクエストを行うシ...

Oracle を MySQL に置き換える際の問題と解決策

目次移行ツールアプリケーション変換mysql8.0 ドライバ パッケージを追加データソース構成の変更...

MySQL サーバー 5.7.20 のインストールと設定方法のグラフィック チュートリアル

この記事ではMySQL 5.7.20のインストールと設定方法を記録し、皆さんと共有します1. MyS...