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文のパフォーマンスを分析するための標準的な要約

推薦する

さまざまなReact状態マネージャーの解釈と使用方法

まず、状態マネージャーとは何か、そしてそれが何をするのかを知る必要があります。複数のページで同じプロ...

Vueプロジェクトのフロントエンドを最適化およびパッケージ化するための必須のボーナスアイテム

目次序文1. ルーティングの遅延読み込み1. ルートの遅延読み込みが必要なのはなぜですか? 2. ル...

Vue シンプル登録ページ + 確認コード送信機能の実装例

目次1. エフェクト表示2. 検証コードとメールプッシュ管理の強化(後述のブログを参照) 3. 一般...

Iframe 適応高さコードに関する 3 つの議論

B/S システム インターフェースを構築する場合、メイン ページ index.html 内に他のペー...

サーバー上で Nginx を使用して Springboot プロジェクトをデプロイする方法の詳細なチュートリアル (jar パッケージ)

1. Javaプロジェクトをjarパッケージにパッケージ化するここではMavenツールを使用します...

セマフォによるTomcatの異常終了の解決方法

最近はビッグデータで遊んでいます。友人が私のところに来て、オンラインの Tomcat が不可解に終了...

MySQL パフォーマンス最適化のための魔法のツール、Explain の基本的な使用分析

導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...

Vue で rem 適応を使用する方法

1. 開発環境vue 2. コンピュータシステム Windows 10 Professional E...

JavaScript が Xiaomi のカルーセル効果を模倣

この記事は、透明度を変えてカルーセルにするXiaomiカルーセルを真似て書いたものです。初心者なので...

MySQL ディープページング問題の解決の実践記録

目次序文ディープページングを制限すると遅くなるのはなぜですか?サブクエリによる最適化B+ツリー構造の...

JavaScript の静的スコープと動的スコープを例を使って説明します

目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...

Centos 6.5 での mysql-community-server. 5.7.18-1.el6 のインストール

次のコマンドを使用して、MySQL Serverがインストールされているかどうかを確認します。 [r...

MySQLに絵文字表現を保存する詳細な手順

原因: java.sql.SQLException: 列の文字列値が正しくありません: '\...

JavaScriptイテレータを学ぶ

目次導入js のイテレータはどのように見えるか反復プロトコル反復可能なプロトコルイテレータプロトコル...

Dockerコミットの使い方の詳しい説明

場合によっては、ベースイメージに特定の依存関係をインストールする必要があります。Dockerfile...