Nginx 正規表現関連のパラメータとルールの紹介

Nginx 正規表現関連のパラメータとルールの紹介

序文

最近、私はクライアントのサーバー構成を支援しており、Nginx 構成ファイルを頻繁に変更しています。通常のマッチング ルールを頻繁に使用しています。ここでは、よく使用される通常のパラメーターとルールをいくつか紹介します。

Nginx 設定における Location の構文規則location [ = | ~ | ~* | ^~ | !~ | !~* ] /uri/{ … }

  1. = は完全一致を意味します
  2. ~ は大文字と小文字を区別する正規の一致を示します
  3. ~*は大文字と小文字を区別しない正規表現マッチングを示します
  4. ^~はURIが通常の文字列で始まることを示します
  5. !~ は大文字と小文字を区別する正規表現の不一致を示します
  6. !~*は大文字と小文字を区別しない正規表現が一致しないことを意味します
  7. / ユニバーサルマッチ、どんなリクエストにもマッチします

マッチング順序

複数の場所が設定されている場合、一致する順序は次のようになります。

最初の試合 =
第二に、マッチ^〜
2 番目はファイルの順序に従って通常のマッチングを行い、最後に /general マッチングに引き渡されます。マッチングが成功するとマッチングは停止し、現在のマッチング ルールに従ってリクエストが処理されます。

. は改行以外の任意の文字に一致します
\w は文字、数字、アンダースコア、または漢字に一致します
\sは任意の空白文字に一致します
\dは数字に一致します
\bは単語の先頭または末尾に一致します
^は文字列の先頭に一致します
$は文字列の末尾に一致します

* 0回以上繰り返す
+ 1回以上繰り返す
? 0回または1回繰り返す
{n} を n 回繰り返す
{n,} n回以上繰り返す
{n,m} を n 回から m 回繰り返します
*? 好きなだけ繰り返しますが、できるだけ少ない回数で繰り返します
+? 1回以上繰り返しますが、できるだけ少ない回数で繰り返します
?? 0回または1回繰り返しますが、できるだけ少ない回数にしてください
{n,m}? n 回から m 回繰り返しますが、できるだけ少ない回数です。
{n,}? n 回以上繰り返しますが、できるだけ少ない回数で繰り返します

\Wは、文字、数字、アンダースコア、漢字以外の任意の文字に一致します。
\Sは空白文字以外の任意の文字に一致します
\Dは数字以外の文字に一致します
\Bは単語の先頭または末尾以外の位置に一致します
[^x]はx以外の任意の文字に一致します
[^aeiou]はaeiou以外の任意の文字に一致します

共通ルール

完全一致

場所 = / {
 プロキシパス http://127.0.0.1:9090/
}

すべてのリクエストをサーバーのポート 9090 に直接転送します。

静的ファイルの提供

#ディレクトリのマッチング場所 ^~ /static/ {
 ルート /webroot/static/;
}
#サフィックスが一致する場所 ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
 ルート /webroot/res/;
}

動的なリクエストをバックエンドアプリケーションサーバーに転送する

#/account/ で始まるリクエストをアカウントサーバーの場所 /account/ に転送します {
 プロキシパス http://127.0.0.1:8080/
}
#/order/ で始まるリクエストを Order サーバーの場所 /order/ に転送します {
 プロキシパス http://127.0.0.1:9090/
}

書き換え指令

  • last は Apache の [L] マークに相当し、書き換えを意味します。
  • break このルールが一致すると、一致は終了し、次のルールは一致しなくなります。
  • リダイレクトは 302 一時リダイレクトを返し、ブラウザ アドレスにはジャンプ後の URL が表示されます。
  • permanent は 301 永続リダイレクトを返し、ブラウザ アドレスにはジャンプ後の URL が表示されます。
  • last と break を使用して URI を書き換えると、ブラウザのアドレス バーは変更されません。
  • alias ディレクティブを使用する場合は、最後のマーカーを使用する必要があります。proxy_pass ディレクティブを使用する場合は、break マーカーを使用する必要があります。
  • last タグは、書き換えルールが実行された後に server{……} タグへのリクエストを再開しますが、break タグはルールが一致した後にマッチングを終了します。

要約する

Nginx 正規表現関連のパラメータとルールに関するこの記事はこれで終わりです。より関連性の高い Nginx 正規表現パラメータとルールについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx の if 文と正規表現を組み合わせて文字列を切り捨てる
  • Nginx 正規表現の詳細な説明
  • nginx ロケーション設定の正規表現例の詳細な説明
  • Nginx 擬似静的書き換え通常リソースの概要
  • Nginx の書き換え正規マッチング書き換え方法の例
  • nginx 設定の場所の概要の場所の通常の書き込みと書き換えルールの書き込み
  • Pythonによるnginxアクセスログの定期分析
  • nginx で正規表現を使用してワイルドカードドメイン名を自動的に一致させる方法
  • nginx を使用して正規表現で指定された URL リクエストを傍受する方法

<<:  JavaScriptで配列かどうかを判断するためのさまざまな方法のまとめ

>>:  MySQL 8.0.18コマンドの詳細な説明

推薦する

Vueプロジェクトでlessを使用するためのヒント

目次序文1. スタイルの浸透1. パターン浸透とは何ですか? 2. 使い方は? 2. ミキシング1....

最小限のルートファイルシステムを構築するためにbusyboxを移植するための詳細な手順

Busybox: 小さなコマンドが詰まったスイスアーミーナイフ。ステップ1: ディレクトリ構造を作成...

フロントエンドネットワーク、JavaScriptの最適化、開発のヒントについて簡単に説明します。

1. ネットワークの最適化YSlowには23のルールがあります。これら数十のルールは、主に、不要な...

MySQL サーバー IO 100% 分析および最適化ソリューション

序文ストレス テスト中に、リソース使用のボトルネックによって発生する最も直接的なパフォーマンスの問題...

モバイル アプリのユーザー インターフェース設計に関する 10 のヒント

ヒント1: 集中力を保つ最高のモバイル アプリは、1 つのことを非常にうまく行うことに重点を置いてい...

MySQL から Excel にテーブルデータをエクスポートする際の日時形式に関する簡単な説明

最近、MySQL を使用してテーブル データを Excel ファイルにエクスポートしました。MySQ...

LinuxにDockerをインストールする(非常に簡単なインストール方法)

最近、かなり暇です。大学4年生として数か月間インターンをしていました。インターンとして、Docker...

HTML コメント HTML 内のテキストコメントをマークするための記号

HTML コメント。コードの横に HTML コメントを付ける必要があることがよくあります。そうするこ...

React refの使用例

目次refとは何かrefの使い方DOM要素に配置するクラスコンポーネントに配置する関数コンポーネント...

Vue モバイル開発で better-scroll を使用するときにクリック イベントが失敗する問題の解決策

最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...

CSS3 で実装された価格表

結果: 実装コードhtml <div id="価格表" class=&qu...

jQueryは従業員情報の追加と削除の機能を実装します

この記事では、従業員情報の追加と削除の機能を実装するためのjQueryの具体的なコードを参考までに共...

Tomcat のパフォーマンス最適化のための Apr モジュールの構築方法

序文Tomcat は、無数のチューニング オプションを備えた、広く使用されている Java Web ...

負荷分散の基礎知識とnginxを使用した負荷分散の簡単な例

Nginx は、一般的に 7 層の負荷分散に使用できます。この記事では、負荷分散に関する基本的な知識...

CD コマンドを使わずに Linux でディレクトリ/フォルダに入る方法

ご存知のとおり、cd コマンドがないと、Linux でディレクトリを切り替えることはできません。それ...