次の構成のHTTPファームがあります。
listen webfarm 10.254.23.225:80
mode http
balance roundrobin
cookie SERVERID insert
option httpclose
option forwardfor
option httpchk HEAD /check.txt HTTP/1.0
server webA 10.254.23.4:80 cookie A check
server webB 10.248.23.128:80 cookie B check
特定のURI(つまり/ special)のすべてのリクエストを3番目のWebサーバーに転送するオプションを追加したいと思います。どうすればよいですか?
ホストヘッダーに基づく負荷分散について書いたブログ投稿は次のとおりです。
URIまたはディレクトリと照合する場合は、そのページで提供されている例で使用されているhdr_endの代わりにpath_begを使用することをお勧めします。以下は、構成でこれを行う方法の例です。
frontend http-in
bind 10.254.23.225:80
acl has_special_uri path_beg /special
use_backend special_server if has_special_uri
default_backend webfarm
backend webfarm
balance roundrobin
cookie SERVERID insert
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server webA 10.254.23.4:80 cookie webA check
server webB 10.248.23.128:80 cookie webB check
backend special_server
balance roundrobin
cookie SERVERID insert
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server webC 10.0.0.1:80 cookie webC check
お役に立てば幸いです。