私のシナリオには、HAProxyと通信する2つのサーバーがあります。要求が入ると、HAProxy は要求を分割し、ラウンドロビン方式で両方のサーバーに送信します。とにかく、最初のインスタンスが失敗した場合、その時点でHAProxyはサーバーの1つが失敗したことを知っている必要があり、そのサーバーに要求を渡すべきではありません。各要求に対してのみ他のサーバーと通信する必要があります。
上記のシナリオに対してHAProxyを設定する方法を教えてください。
答え1
私はこのチュートリアルがあなたが探しているものだと思います。チュートリアルのタイトルは次のとおりです。Debian Lenny で HAProxy/Heartbeat を使用して高可用性ロードバランサー(障害対策とセッションサポートを含む)を設定する。
通常、/etc/haproxy.cfg ファイルは次のようになります。
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webfarm 192.168.0.99:80
mode http
stats enable
stats auth someuser:somepassword
balance roundrobin
cookie JSESSIONID prefix
option httpclose
option forwardfor
option httpchk HEAD /check.txt HTTP/1.0
server webA 192.168.0.102:80 cookie A check
server webB 192.168.0.103:80 cookie B check
このファイルを再構成し、フロントエンドWebファームのIPアドレスをあなたのものに変更する必要があります。また、サーバー接続を内部バックエンドサーバーのIPアドレスにリダイレクトする必要があります。