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

推薦する

HTML ページ出力で従うべきいくつかの原則の要約

1. DOCTYPE は必須です。ブラウザは宣言した DOCTYPE に基づいてページのレンダリング...

回転灯効果を実現するWeChatアプレットの例

序文日常の開発では、テキストの水平スクロール効果(一般にカルーセルと呼ばれる)によく遭遇します。これ...

Tudou.com フロントエンドの概要

1. 分業とプロセス<br />Tudou.comでは、プロジェクト開発が中核であり、誰...

Linux アカウントのパスワードを変更する詳細な例

個人アカウントのパスワードを変更する一般ユーザーが個人アカウントのパスワードを変更する場合は、他のコ...

nginx で複数のフロントエンド プロジェクトをデプロイするいくつかの方法

nginx を使用して 1 つのサーバーに複数のフロントエンド プロジェクトをデプロイする 3 つの...

HTMLからPDFへの変換のための純粋なクライアント側と純粋なサーバー側の実装ソリューション

必要ユーザーがフォームに入力して「保存」をクリックすると、PDF ドキュメントを直接ダウンロードでき...

CSS はモバイル デバイスで水平スクロール ナビゲーション バーを実装します (PC デバイスにも適用可能)

関数の起源最近、水平スクロール バーを必要とする H5 に取り組んでいました。いくつかのドキュメント...

VPSサーバーでよく使われるパフォーマンステストスクリプトの概要

これは、VPS サーバー用の一般的なワンクリック パフォーマンス テスト スクリプトです。マシンの構...

ノードスクリプトで自動サインインと抽選機能を実現

目次1. はじめに2. 準備3. スクリプトプロジェクトの構築4. コードの作成と実行5. まとめと...

IE で ClearType をオンにした後の透明フォントの問題の解決方法

IE で ClearType をオンにした後に発生する透明フォントの問題を解決するには、透明要素に背...

JavaScript におけるイベント バブリング メカニズムの詳細な分析

バブリングとは何ですか? DOM イベント フローには、イベント キャプチャ ステージ、ターゲット ...

CSS 複数 3 列適応レイアウト実装の詳細な説明

序文従来のWEBレイアウトに沿うため、すべてヘッダーとフッターモードの左・中央・右レイアウトで書かれ...

HTMLエンコードによる文字化け問題について

今日、3年生から質問がありました。彼が書いた HTML コードを開くと、文字化けした文字が表示されま...

MySQL インデックス障害の上位 10 の問題の概要

目次背景1. クエリ条件に「or」が含まれているため、インデックスが失敗する可能性があります。 2....

SQLでEXPLAINコマンドを使用する方法

日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...