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 IDは1から増加し始め、不連続IDの問題を素早く解決します

mysql idは1から始まり、不連続なidの問題を解決するために自動的に増加します。強迫性障害の私...

MySQL Binlog ログの読み取り時によくある 3 つのエラー

1. mysqlbinlog: [エラー] 不明な変数 'default-character...

JavaScript キャンバスで動的な点と線の効果を実現

この記事では、動的な点と線の効果を実現するためのJavaScriptキャンバスの具体的なコードを参考...

Webデザインチュートリアル(2):模倣と盗作について

<br />前回の記事では、Webデザインの手順と方法を紹介しました。詳細については、前...

TypeScript 3.7 で注目すべき 3 つの新機能について簡単に説明します。

目次序文オプションの連鎖ヌル結合呼び出されていない関数のチェック他の序文TypeScript 3.7...

WebデザイナーがRetinaディスプレイデバイス向けの画像を作成する方法

特記事項:この記事は、Chris Spooner の英語記事「Web デザイン用の Retina グ...

登録ページを実装するためのJS、CSS、HTML

HTML と CSS で実装された登録ページ テンプレート。早速、コードを見てみましょう。更新: ...

Vue3は画像拡大鏡効果を実現します

この記事の例では、画像拡大鏡効果を実現するためのVue3の具体的なコードを参考までに共有しています。...

Linux環境でOpenSSL証明書を生成する

1. 環境: CentOS7、OpenSSL1.1.1k。 2. コンセプト:ルート証明書: サーバ...

Tomcatがセッションを管理する方法の例

ConcurrentHashMapを学習しましたが、どのように適用すればよいかわかりませんか? To...

Vueライフサイクル機能の詳細な説明

目次ライフサイクル関数一般的なライフサイクルフックVue のインスタンス破棄について:要約するライフ...

Linux で MySQL 5.7.19 をアンインストールする方法

1. MySQLが以前にインストールされていたかどうかを確認するコマンド: rpm -qa|grep...

MySQL の一般的な SQL ステートメントの概要

1. mysqlエクスポートファイル: SELECT `pe2e_user_to_company`....

MySQL がエラーを報告: ファイルが見つかりません: './mysql/plugin.frm' 解決策

問題を見つける最近、仕事中に問題が見つかりました。問題は、MySQL ディスクがいっぱいだったことで...