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

推薦する

html2canvas を使用して HTML コードを画像に変換する方法

コードを画像に変換するにはhtml2canvas は、ブラウザから Web ページのスクリーンショッ...

CSS ピックアップ矢印、カタログ、アイコン実装コード

1. CSS その他のアイコンアイコンを作成するには 3 つの方法があります。写真css (小さな矢...

CSS で左上の三角形を作成するいくつかの方法の詳細な説明

今日は、CSS を使用して左上の三角形を記述するいくつかの方法を紹介します。概略図(幅と高さを60p...

jQuery カスタム虫眼鏡効果

この記事の例では、jQueryのカスタム虫眼鏡効果の具体的なコードを参考までに共有しています。具体的...

HTML5+CSS3 ヘッダー作成例と更新

前回、私たちは 2 つのヘッダー レイアウト (フレックスボックス 1 つとフロート 1 つ) を考...

Tomcat でサーブレット URL パターンを構成する際の問題の詳細な説明

tomcat の web.xml を構成する場合、サーブレットは比較的重要な問題です。ここでは、サー...

MySQL の分離レベル、ロック、MVCC の紹介

この記事の目的は、これらの概念とその機能の関係を明らかにすることです。 Mysql がトランザクショ...

計算機機能を実装するミニプログラム

この記事の例では、計算機機能を実装するためのミニプログラムの具体的なコードを参考までに共有しています...

Dockerを使用してRedisクラスターを構築する方法

目次1. Redis Dockerベースイメージを作成する2. Redisノードイメージを作成する3...

nginx で SSL 証明書を設定して https サービスを実装する方法

前回の記事では、openssl を使用して無料の証明書を生成した後、この証明書を使用してローカル ノ...

yum の基本的な使い方と例(推奨)

yumコマンドYum (フルネームは Yellow dog Updater, Modified) ...

HTML ハイパーリンク内の中国語文字化けの分析と解決

Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...

MySQLで重複行を削除する方法

SQL文 /* MySQL で重複行を削除するいくつかの方法 ---Chu Minfei ---20...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

CSS3 で実装された画像ホバートグルボタン

結果:実装コードhtml <ul class="スライド"> <...