NginxはURLのパスに応じてアップストリームに動的に転送します

NginxはURLのパスに応じてアップストリームに動的に転送します

Nginx では、URL のパス パラメータに基づいて、到達不可能なアップストリームに動的に転送する必要がある高度なシナリオがいくつかあります。

シナリオ1

/svr1/xxxx?yyy は svr1:8080/xxxx?yyy に転送されます

/svr2/xxxx?yyy は svr2:8080/xxxx?yyy に転送されます

構成は次のとおりです。

場所 ~* /(srv[1-9]+)/(.*)$ {
  すべて許可する。
  proxy_pass http://$1/$2$is_args$args; 
  proxy_set_header ホスト $host;                         
  proxy_set_header x-forwarded-for $forwarded_addr;                                
}

アップストリーム srv1 {                                                   
   サーバー srv1-ip:8080;
}
      
アップストリーム srv2 {                                                   
   サーバー srv2-ip:8080;
}

シナリオ2

svc1 の下には 3 つのピア サービス srv1、2、3 があります。/svc1/xxxx?yyy は srv1/2/3:8080/xxxx?yyy に転送されます。

svc2 の下には 3 つのピア サービス srv4、5、6 があります。/svc2/xxxx?yyy は svr4/5/6:8080/xxxx?yyy に転送されます。

場所 ~* /(svc[1-9]+)/(.*)$ {                             
  すべて許可する。                                  
  proxy_pass http://$1/$1/$2$is_args$args;                   
  proxy_set_header ホスト $host;
  proxy_set_header x-forwarded-for $forwarded_addr;                   
}

アップストリーム svc1 {
  サーバー srv1:8080;   
  サーバー srv2:8080;   
  サーバー srv3:8080;                
}

アップストリーム svc2 {
  サーバー srv3:8080;   
  サーバー srv4:8080;   
  サーバー srv5:8080;                
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • nginx を使用して正規表現で指定された URL リクエストを傍受する方法
  • nginx を使用して特定のインターフェース (URL) をブロックする方法
  • URLに基​​づいてリクエストを転送するnginxの実装の実践経験
  • nginx proxy_pass リバース プロキシ設定で URL の後に / を追加する場合と追加しない場合の違いの紹介
  • Nginx で中国語の URL が使用できない問題の解決策
  • nginx 設定 URL リダイレクト - リバース プロキシの詳細な説明
  • URLパラメータに応じたnginxの書き換えと場所の詳細な説明
  • Nginx サーバーで URL リンクを設定する方法

<<:  WeChat アプレット計算機の例

>>:  SQL文のパフォーマンスを分析するための標準的な要約

推薦する

MySQL で数千万のテストデータを含むテストデータベースを作成する方法

場合によっては、MySQL が公式に提供しているテスト ライブラリに基づいてテスト データを作成し、...

Vue の要素カレンダー コンポーネントを使用したサンプル コード

まず効果図を見てみましょう: 完全なコードは添付されています <テンプレート> <...

Windows Server 2016 に MySQL 5.7.19 の解凍バージョンをインストールするための詳細なチュートリアル

MySQL 5.7.19 winx64 解凍版のインストールチュートリアルを収録しています。具体的な...

Dockerプライベートウェアハウスの構築とインターフェース管理の詳細な説明

1. レジストリについて公式 Docker ハブは、パブリックイメージを管理するのに適した場所です。...

Javascript ファイルと Blob の詳細な説明

目次ファイル()文法パラメータ例ブロブ()文法パラメータ財産方法例要約するファイル() File()...

MySQLデータの重複チェックと重複排除の実装ステートメント

テーブル user があり、フィールドは id、nick_name、password、email、p...

MySQL ALTERコマンドの知識ポイントのまとめ

テーブル名を変更したり、テーブル フィールドを変更したりする必要がある場合は、 MySQL ALTE...

MySQLはinet_atonとinet_ntoaを使用してIPアドレスデータを処理します。

この記事では、適切な形式を使用して IP アドレス データをデータベースに保存し、IP アドレスを簡...

jsはカスタムドロップダウンボックスを実装します

この記事の例では、カスタムドロップダウンボックスを実装するためのjsの具体的なコードを参考までに共有...

MySQLのスケジュールタスクが正常に実行できない原因の分析と解決

目次序文原因分析と解決策スケジュールされたタスクを迅速に実行する要約する序文データベースのスケジュー...

Linux+ApacheサーバURLの大文字と小文字の区別の問題を解決する

今日、問題が発生しました。ブラウザのアドレスバーにURLアドレスを入力する際、ページを正常にアクセス...

VMware ESXi CLI の一般的なコマンドを調べる

目次【共通コマンド】 [一般的な esxi コマンドの概要] [esxcli コマンドの調査] ES...

Linux で boost.python を使用して C++ 動的ライブラリを呼び出す方法

序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...

Nginx rtmp モジュールのコンパイル ARM バージョンの問題

目次1. 準備: 2. ソースコードのコンパイル1. 設定する2. コンパイルエラー3. ターゲット...

Mysql クエリの結果セットを JSON データに変換するサンプル コード

Mysql はクエリ結果セットを JSON データに変換します 序文 学生テーブル 学生スコアテーブ...