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

推薦する

ページにスクロールバーが表示されたときに、スクロールバーがページ幅に影響しないようにする方法

本体の幅をウィンドウの幅に設定します(次のスクリプトで制御されます) $("body&qu...

シンプルなjQuery + CSSを使用してカスタムタグタイトルツールチップを作成します

導入シンプルな jQuery + CSS を使用して、ブラウザのデフォルトの動作を置き換えるカスタム...

Alibaba Cloud Nginx はドメイン名アクセス プロジェクトを実装するために https を設定します (グラフィック チュートリアル)

ステップ1: サードパーティの信頼できるSSL証明書に署名するAlibaba Cloud で直接、無...

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

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

Dockerを使用して開発環境を構築する方法を素早く習得します

プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...

HTML 要素 (タグ) とその使用法

a : ハイパーリンクの開始位置または宛先位置を示します。頭字語: 単語の最初の文字からなる略語を示...

複数の値を返す MySQL ストアド プロシージャ メソッドの例

この記事では、例を使用して、MySQL ストアド プロシージャで複数の値を返す方法について説明します...

JavaScript でイベントのバブリングを防ぐ方法

注意すべき点は、イベントバブリング自体の特性上、メリットだけでなくデメリットも生じるということです。...

CSS フレックスベースのテキストオーバーフロー問題の解決方法

重要でないflex-basisテキストオーバーフローに省略記号を追加するという小さな機能に多くの問題...

TypeScriptはvscodeを使用してコードのコンパイルプロセスを監視します

インストールtsコマンドをグローバルにインストールする npm install -g typescr...

WeChatアプレットは水平および垂直スクロールを実現

この記事の例では、WeChatアプレットの水平スクロールと垂直スクロールを実現するための具体的なコー...

elasticsearchを使用してインデックスデータを定期的に削除する

1. ESを使うこともあるリソースが限られている、またはビジネス上のニーズにより、最新の期間のデータ...

MySQLは「order by」がどのように機能するかを簡単に理解します

並べ替えの場合、order by は非常に頻繁に使用するキーワードです。インデックスに関するこれまで...

CSSアニメーションを使用して背景のシームレスな無限ループを実装する例

1. 需要絵が左から右へ無限ループで動く2. コードモバイルデバイスに適用されているため、rem 単...