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

推薦する

JSは単純なフィルタリングから複数条件のフィルタリングまで配列フィルタリングを実装します

目次単一条件単一データフィルタリング単一条件複数データフィルタリング複数の条件付きデータフィルタリン...

大きなオフセットによる MySQL 制限ページングが遅い理由と最適化ソリューション

MySQL では通常、limit を使用してページ上のページング機能を完了しますが、データ量が大きな...

Mac で MySQL 8.0.22 のパスワードを取得する方法

Mac 最新バージョンの MySQL 8.0.22 パスワード回復問題の説明:昨日、突然、Macで最...

Vueシングルページアプリケーションの事前レンダリング方法の例

目次序文vue-cli 2.0 バージョンvue-cli 3.0 バージョン要約する序文vue-cl...

Linux Centos8 CA証明書作成チュートリアル

必要なファイルをインストールする Yum インストール openssl-* -yデータベースインデッ...

CSS を使用して ul と li の水平配置を実現する 2 つの方法

li はブロックレベル要素であり、デフォルトで 1 行を占めるため、水平方向の配置を実現する場合は、...

Javascript の基礎: 演算子とフロー制御の詳細な説明

目次1. オペレーター1.1 算術演算子1.2 インクリメント演算子とデクリメント演算子1.3 比較...

レスポンシブウェブデザインを実現するためにIEでCSS3メディアクエリをサポートする

今日の画面解像度は、320 ピクセル (iPhone) ほど小さいものから、2560 ピクセル以上 ...

Windows での MySQL 8.0.13 解凍バージョンのインストール グラフィック チュートリアル

この記事では、参考までにMySQL 8.0.13のインストールグラフィックチュートリアルを紹介します...

cocoscreatorプレハブの詳しい説明

目次プレハブプレハブの作り方プレハブの役割1. 同じタイプのノードをバッチで作成する2. 特定の時間...

CocosCreator ユニバーサルフレームワークデザインネットワーク

目次序文Websocketの使用Websocketオブジェクトの構築Websocket ステータスW...

Vue は zip ファイルのダウンロードを実装します

この記事の例では、Vueの具体的なコードを共有し、zipファイルをダウンロードして参考にしています。...

Docker コンテナのデプロイの試み - マルチコンテナ通信 (node+mongoDB+nginx)

その理由はモッカー プラットフォームを導入したかったので、友人の勧めで既成のプロジェクト api-m...

ES6実装クラスのプライベート変数の書き方をいくつか詳しく説明します

プライベート変数のクロージャ実装プライベート変数は共有されないnew キーワードにより、 perso...

Centos7 への mysql8.0rpm のインストール チュートリアル

まず、図をダウンロードしてください 1. まず、centos7に付属しているmariadbをアンイン...