位置一致順序 1. 「=」プレフィックス命令マッチング、マッチングが成功したら他のマッチングを停止 注記 1. 一致順序は、最初に通常の文字列と一致し、次に正規表現と一致します。また、共通文字列のマッチング順序は、設定内の文字の長さに応じて長いものから短いものの順になります。つまり、共通文字列で設定された場所の順序は関係ありません。最終的には、nginx は設定の長さに応じてマッチングを行います。ただし、正規表現は設定ファイル内の順序でテストされることに注意してください。正規表現の最初の一致が見つかると検索は停止します。 2. 一般的に、通常の文字列の位置の一致が成功すると、正規表現の位置も一致します。この動作を変更するには 2 つの方法があります。1 つは「=」プレフィックスを使用することです。これは厳密な一致を実行し、リクエストの処理中に一致が成功した後すぐに他の一致を停止します。もう 1 つは「^~」プレフィックスを使用することです。このプレフィックスを通常の文字列に使用すると、パスが一致する場合に nginx に正規表現をテストしないように指示します。 パターンと順序の一致 先頭の Location = /uri = は完全一致を示し、完全一致のみが有効になります。 location ^~ /uri ^~ は URL パスのプレフィックス一致で始まり、正規表現の前に来ます。 先頭の位置 ~ パターン ~ は、大文字と小文字を区別する正規一致を示します。 場所 ~* パターン ~* は大文字と小文字を区別しない正規表現で始まります。 修飾子のない location /uri もプレフィックス一致を示しますが、正規表現一致の後になります。 location / Universal matching では、他の場所と一致しないリクエストが一致します。これは、switch の default に相当します。 実験例 「^~」と「~」をテストします。nginx の設定は次のとおりです。ブラウザに http://localhost/helloworld/test と入力すると、601 が返されます。 #1 をコメントアウトして #2 を開き、ブラウザに http://localhost/helloworld/test と入力すると、603 が返されます。注意: #1 と #2 は同時に開くことはできません。これら 2 つは通常の文字列であるため、同時に開くと、nginx の起動時に nginx: [emerg] duplicate location "/helloworld"... が報告されます。 場所 ^~ /helloworld { #1 601を返します。 } #場所 /helloworld { #2 # 602 を返します。 #} 場所 ~ /helloworld { 603を返します。 } 共通文字列の長さをテストします (共通文字列の一致は順序とは関係なく長さに関係します)。ブラウザに http://localhost/helloworld/test/a.html と入力すると、601 が返されます。ブラウザに http://localhost/helloworld/a.html と入力すると、602 が返されます。 場所 /helloworld/test/ { #1 601を返します。 } 場所 /helloworld/ { #2 602を返します。 } 正規表現の順序をテストします (正規表現の一致は順序に依存します)。ブラウザに http://localhost/helloworld/test/a.html と入力して 602 を返します。#2 と #3 の順序を入れ替えて、ブラウザに http://localhost/helloworld/test/a.html と入力して 603 を返します。 場所 /helloworld/test/ { #1 601を返します。 } 場所 ~ /helloworld { #2 602を返します。 } 場所 ~ /helloworld/test { #3 603を返します。 } したがって、実際の使用では、次のように少なくとも 3 つの一致ルール定義があると思います。 #ウェブサイトのルートと直接一致します。ドメイン名を介してウェブサイトのホームページにアクセスする方が頻繁になります。これを使用すると、処理が高速化されると公式サイトは述べています。 #これはバックエンドアプリケーションサーバーに直接転送されるか、静的ホームページになる場合があります# 最初に必要なルールの場所 = / { proxy_pass http://tomcat:8080/index } # 2 番目の必須ルールは、静的ファイル要求を処理することです。これは、http サーバーとしての nginx の強みです。# ディレクトリ マッチングまたはサフィックス マッチングの 2 つの構成モードがあり、どちらかを選択するか、両方を使用します。location ^~ /static/ { ルート /webroot/static/; } 場所 ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { ルート /webroot/res/; } #3 番目のルールは一般的なルールで、動的なリクエストをバックエンド アプリケーション サーバーに転送するために使用されます。#非静的ファイル リクエストはデフォルトで動的なリクエストであり、実際の状況に応じて把握できます。#結局のところ、人気のあるフレームワークの中には、.php や .jsp のサフィックスが付いているものはほとんどありません。location / { プロキシパス http://tomcat:8080/ } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CentOS で MySQL 5.1 を 5.5.36 にアップグレードする
>>: React+Antdはテーブルの追加、削除、変更の例を実装します
この記事では、Vite を使用して Vue 3 デスクトップ プロジェクトを開発する方法について説明...
目次序文SSHとは何かssh は何に使用されますか? sshの使い方ssh 再修正要約する序文ssh...
目次Vue 再帰コンポーネントドラッグイベント最近、Vue を使用して、ドラッグ可能なツリー構造図と...
2008年5月12日に四川省汶川市で発生した地震により、多くの命が失われ、遺憾なことと存じます。国務...
MySQL のフィルタリングのタイミングは、集計関数で使用される where 条件と having ...
1. ワイヤレス ネットワーク カードを挿入し、コマンドiwconfigを使用してワイヤレス ネット...
IE6 で試してみたところ、ツールバーが表示されました。オプションに「イメージ ツールバーを有効にす...
この例で開発されたカスケード ドロップダウン メニューは、既存の JSON データに基づいて作成され...
画像タグ <IMG> を挿入します。今日私たちが目にするカラフルなウェブページはすべて、...
WeChatアプレットはスクロールビューを使用して左右のリンクを実現します。参考までに、具体的な内容...
いつものように、まずは画像効果を投稿しましょう: このエフェクトの原理は非常にシンプルです。CSS3...
目次ハッシュと履歴の違いハッシュ履歴getCurrentLocation の実装setupListe...
特定のインターフェースをリクエストするときに、指定されたテキスト文字列または JSON 文字列を返す...
フォルダー内のすべての txt ファイルのファイル名の前に「gt_」を追加する必要があります。つまり...
1. left(name,4)は左の4文字をインターセプトしますリスト: SELECT LEFT(2...