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コマンドの詳細な説明

推薦する

Linux システムで Code Cloud にプロジェクトをアップロードする方法

Code Cloudで新しいプロジェクトtest1を作成します。 公開鍵を取得するには次のコマンドを...

MySql ストアド プロシージャ パラメータの初歩的な使用法の詳細な説明

パラメータでのストアドプロシージャの使用IN パラメータは、プロシージャに情報を渡すためにのみ使用さ...

このようなシェル スクリプトを使用して、多数の MySQL データベースを強制終了します (推奨)

朝早くに電話で起こされました。あるプロジェクトのデータベースがダウンしていて起動できないとのことでし...

HTML テーブルの行間および列間の操作 (rowspan、colspan)

一般的に、<td> 要素の colspan 属性はセルの列間操作を実装するために使用され...

WindowsでcmdからDOSウィンドウに入り、MySQLデータベースにアクセスします。

1. win + R を押して cmd と入力し、DOS ウィンドウに入ります。 2. MySQL...

標準SQL更新ステートメントの3つの用途についての簡単な理解

1. 環境: MySQL-5.0.41-win32 Windows XP プロフェッショナル2. テ...

MySQL カウントを向上させる方法のまとめ

多くのプログラマーは MySQL に精通していると思います。多くの人が count の使い方と、最適...

CentOS7 ファイアウォールとオープンポートの簡単な使い方の簡単な紹介

概要(公式にはより詳しい説明があります) Firewalld は、ネットワーク接続またはインターフェ...

0.1秒の価値!フロントエンドのウェブページの高速化の問題について簡単に説明します

私が現在の仕事の面接を受けたとき、リーダーが真剣にこう言っていたのを覚えています。「今の世の中はイン...

JS配列の一般的な方法とテクニックを学び、マスターになりましょう

目次splice() メソッドjoin() メソッド逆() メソッドevery() メソッド削減()...

ティックアニメーション効果を作成するための svg+css または js

以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...

VMware Workstation 15 Pro に Ubuntu 1804 をインストールするチュートリアル (画像とテキスト付き)

このメモはインストール チュートリアルです。実用的な意味はありません。記録のためだけに書いています。...

Vue フロントエンド開発における階層的にネストされたコンポーネント間の通信の詳細な説明

目次序文例まとめ序文Vue の親子コンポーネントは、props を通じて親コンポーネントの値を子コン...

MySQL スロークエリログの詳細な理解

目次スロークエリログとは何ですか?スロークエリを有効にする方法ログ分析ツール mysqldumpsh...

docker を使用して kafka プロジェクトをデプロイする Centos6 方法の分析

この記事では、Docker を使用して Centos6 に Kafka プロジェクトをデプロイする方...