私たちは複数のバックエンドファーム(HTTP、FTPなど)を持っており、基本的には顧客ごとに1つのファームがあり、ロードバランシングインフラストラクチャを再構築しようとしています。Piranha
にHAProxy
使用しているため
複数の異なるバックエンドサーバーファームピラニアの設定は現在このようになっています(例はファームを示しています)ウェブサーブ01、第2農場ウェブサーブ02同じ設定を使用しますが、仮想 IP は異なります):
virtual webserv01 {
active = 1
address = 10.11.11.1 eth2:30
vip_nmask = 255.255.255.0
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server webserv01v {
address = 192.168.101.64
active = 1
port = 80
weight = 1
}
server webserv02v {
address = 192.168.102.64
active = 1
port = 80
weight = 1
}
server webserv05v {
address = 192.168.101.65
active = 1
port = 80
weight = 1
}
server webserv06v {
address = 192.168.102.65
active = 1
port = 80
weight = 1
}
}
(例: 顧客 1 は vIP 10.11.11.1:80 を使用する独自の Web サーバー ファームを持ち、顧客 2 は vIP 10.11.11.2:80 を使用するファームを持っています)。1 つの HAProxy インスタンスで、異なる一意の vIP アドレスを使用して同じサービスの複数のファームを処理できるかどうか興味があります。
基本的なセットアップは次のようになります:
2 つの HAProxy インスタンス (フェイルオーバーあり)
4 つの HTTP バックエンド ファーム (顧客ごとに 1 つ)
2 つの FTP ファーム
わかりやすくするために、2 つの Web サーバー ファームの HAProxy 構成の概念例を添付します。異なる仮想 IP に注意してください。
#---------------------------------------------------------------------
# LB: VIRTUAL WEBSERVER POOL #01
#---------------------------------------------------------------------
frontend vWEB-LB-01
bind 10.11.11.1:80
mode http
default_backend vWEB-Pool-01
backend vWEB-Pool-01
mode http
balance roundrobin
server webserv01v 192.168.101.64:80 check weight 100 inter 1000
server webserv02v 192.168.102.64:80 check weight 100 inter 1000
server webserv05v 192.168.101.65:80 check weight 100 inter 1000
server webserv06v 192.168.102.65:80 check weight 100 inter 1000
#---------------------------------------------------------------------
# LB: VIRTUAL WEBSERVER POOL #02
#---------------------------------------------------------------------
frontend vWEB-LB-02
bind 10.11.11.2:80
mode http
default_backend vWEB-Pool-02
backend vWEB-Pool-02
mode http
balance roundrobin
server webserv01v 192.168.101.75:80 check weight 100 inter 1000
server webserv02v 192.168.101.76:80 check weight 100 inter 1000
server webserv05v 192.168.101.68:80 check weight 100 inter 1000
server webserv06v 192.168.101.69:80 check weight 100 inter 1000
HAProxy および/または keeoalived は、これを表示されている方法で処理できますか? できる場合、どのように対処すればよいですか? 2 つの HAProxy インスタンス間のフェイルオーバーの目的で
使用し、バックエンド ファームの負荷分散を実行させたいと思いますkeepalived
。現在、使用する必要がある複数の仮想 IP アドレスについて少し混乱しています。ご意見をお聞かせいただければ幸いです。
答え1
はい、HAproxy はそれを実行します。HAproxy が使用するすべての仮想 IP で keepalived を構成する必要があります。keepalived.conf の virtual_ipaddress ブロックで複数の IP を割り当てることができます。
virtual_ipaddress {
192.168.0.10
192.168.0.11
192.168.0.12
192.168.0.13
}