URLの一部に応じて、HAProxyがリクエストのルーティングにどのように役立つかをお聞きしたいと思います。
セットアップの概要を説明するために、HAProxyマシンと2つのバックエンドがあります。
- IIS Webサイト(メインサイト)
- NGINX(サブサイト)に関するWordpressブログ
ユースケース:
URLに応じてリクエストをルーティングする予定です。
- www.website.com/lang/index.aspx->メインサイト
- www.website.com/lang/blog/articlexx->ブログサブサイト
ブログのアクセスURLは「/server/ blog / lang / articlexx」なので、元のクライアントリクエストをその形式に書き換える必要があります。つまり、基本的に「blog」と「lang」が切り替わります。
構成ドキュメントとネット上のいくつかの投稿をどのように理解したかから、リクエストHTTPヘッダーをバックエンドに渡す前に、reqrep/reqirepを使用して変更することができました。そうであれば、この構成は機能するはずです。
frontend vFrontLiner
bind x.x.x.x:x
mode http
option httpclose
default_backend iis_website
# the switch: x/lang/blog -? x/blog/lang
reqirep ^/(.*)/(blog)/(.*) /if\2/\1/\3
acl blog path_beg -i /lang/blog/
use_backend blog_website if blog
backend blog_website
mode http
option httpclose
cookie xxblogxx insert indirect nocache
server BLOG1 x.x.x.x:80 cookie s1 check inter 5s rise 2 fall 3
server BLOG2 x.x.x.x:80 cookie s2 check inter 5s rise 2 fall 3 backup
問題: blog_websiteバックエンドが受信するリクエストは、元のURL「x / lang/blog」のままです。
正規表現の部分で何かを見逃したかもしれませんが、私の主な関心事は、私の理解が正しいかどうか、そもそもreqirepを使用しないかどうかです。助けていただければ幸いです。
どうもありがとう。