1. まず、nginxの位置情報に関する関連知識を確認しましょう 1) 位置マッチング手順:
2) 場所のマッチングの優先順位(設定ファイル内の場所の順序に関係なく) 1.= 完全一致が最初に処理されます。完全一致が見つかった場合、nginx はそれ以上の一致の検索を停止します。 2. nginx の複数の if 内の Proxy_pass: サーバー{ 127.0.0.1:80 を聴く; $test A を設定します。 $testB を B に設定します。 位置 / { ($test ~* "A") の場合 { proxy_pass http://www.so.com; 壊す; } ($testB ~* "B") の場合 { proxy_pass http://www.sogou.com; #壊す; } } } 特定の条件が満たされたときに特定の proxy_pass を使用したいと考えています。ただし、上記の例のように、複数の if 文が満たされる場合、最初の if 文に break がない場合、以下が実行されます。最初の一致後に proxy_pass を実行するには、break を追加できます。 (nginxにはif elseのような命令はないようです) 3. 異なる proxy_pass のパラメータを決定します。 Rewrite はパラメータではなく URL パスでのみ一致できるため、パラメータ判定を実装する場合は $arg_parameter を使用する必要があります。 位置 / { ルートhtml; インデックス index.html index.htm index.php; proxy_redirect オフ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header ホスト $http_host; プロキシ_http_バージョン 1.1; proxy_set_header 接続 ""; $query_string が "usg=0" の場合 proxy_pass http://local_workera; } $query_string が "usg=1" の場合 proxy_pass http://local_workerb; } $arg_uid が "(.*[AB]$)" の場合 proxy_pass http://local_workerf; } proxy_pass http://local_workera; } 1) リクエスト パス内の 2 つのパラメータ usg=0 と usg=1 は固定されているため、通常のマッチングには $query_string が使用されます ($query_string の値はリクエスト内のすべてのパラメータです) 2) 次に、uid 値が A または B で終わるリクエストを local_workerf に転送して処理したい場合、この時点では通常のマッチングに $query_string を使用することはできません (/?uid=1A&t=1&usg=1 と /?uid=123&t=A&usg=0 をマッチングさせることは容易ではないため)。この時点では通常のマッチングに $arg_uid のみを使用できます。 3) 2 つのパラメータ usg=0 と usg=2 は相互に排他的であるため、上記の場所にある if 命令のロジックに従って、中断することなく正しく処理され、先頭に配置されます。 uid のマッチングでは、usg と競合するため、一番下に配置するか、改行を追加することしかできません。つまり、次のようになります。 位置 / { ルートhtml; インデックス index.html index.htm index.php; proxy_redirect オフ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header ホスト $http_host; プロキシ_http_バージョン 1.1; proxy_set_header 接続 ""; $arg_uid が "(.*[AB]$)" の場合 proxy_pass http://local_workerf; 壊す; } $query_string が "usg=0" の場合 proxy_pass http://local_workera; } $query_string が "usg=1" の場合 proxy_pass http://local_workerb; } proxy_pass http://local_workera; } nginx location の複数の if における proxy_pass メソッドに関するこの記事はこれで終わりです。より関連性の高い nginx location proxy_pass コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: カスタムポップアップボックスを実装するためのJavaScriptシングルトンモード
Bツリーインデックス異なるストレージ エンジンでは、異なるストレージ構造を使用する場合もあります。た...
注意: スコープアニメーションは使用できません。 ! ! ! GIF経由 <テンプレート>...
達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...
1. コマンドの紹介read コマンドは、シェルの組み込みコマンドで、標準入力または -u オプショ...
<br />内容はインターネットから転載したものです。どこから見つけたのか忘れてしまいま...
ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...
この記事の例では、アップロード画像コントロールを実装するためのjsの具体的なコードを参考までに共有し...
pthread_create関数機能紹介pthread_createはUNIX環境のスレッド作成関数...
MySql インデックスの詳細な紹介と正しい使用方法1. はじめに:インデックスはクエリ速度に重大な...
目次MySQL マスタースレーブ同期原理の簡単な分析1. マスタースレーブとは何ですか? 2. 主従...
1. タイプの導入1.1 ドメインベースの仮想ホスティングいわゆるドメイン名ベースの仮想ホストとは、...
テキストシャドウテキストシャドウ: 水平オフセット 垂直オフセット ぼかし色互換性: IE10+ &...
序文いわゆるファジークエリとは、ユーザーの完全な入力やすべての入力情報がなくてもクエリサービスを提供...
この記事では、棒グラフの動的な表示を実現するためのvue echartsの具体的なコードを参考までに...
CSS3 は反転可能なホバー効果を実装します。具体的なコードは次のとおりです。 1.css /*基本...