
特定のサイトをホストする複数のサーバーから負荷分散アーキテクチャにインフラストラクチャを移行しています。HAプロキシOpenBSD 4.6 macppc 上の 1.3.15.7。当然、現在のセットアップ (特定のサーバー上の特定のサイト) のコンテンツ スイッチングを構成することから始めており、/etc/haproxy/haproxy.cfg は次のようになります。
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 1024
chroot /var/haproxy
uid 604
gid 604
daemon
#debug
#quiet
pidfile /var/run/haproxy.pid
defaults
log global
mode http
option httplog
option dontlognull
option redispatch
retries 3
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
stats enable
stats auth user:pass
frontend http_proxy *:80
# check to see which domain the reguest is for
acl host_tld.domain.sub1 hdr_end(host) sub1.domain.tld
acl host_tld.domain.sub2 hdr_end(host) sub2.domain.tld
# send to the correct server
use_backend server2 if host_tld.domain.sub1 or host_tld.domain.sub2
default_backend server1
backend server1
server httpd_server1 192.168.1.3:80
backend server2
server httpd_server2 192.168.1.4:80
目標は、server1
ドメイン & を除くすべてのドメインが によってサービスされることですが、ドメインsub1.domain.tld
&sub2.domain.tld
は によってサービスされる必要がありますserver2
。ただし、HAProxy を起動しようとすると、次のエラーが発生します。
parsing /etc/haproxy/haproxy.cfg : backend 'server2' has no dispatch address and is not in transparent or balance mode.
parsing /etc/haproxy/haproxy.cfg : backend 'server1' has no dispatch address and is not in transparent or balance mode.
Errors found in configuration file, aborting.
Error reading configuration file : /etc/haproxy/haproxy.cfg
私は、HAProxy 1.3 ドキュメントそしてhttp://upstre.am/2008/01/09/using-haproxy-with-multiple-backends-aka-content-switching/ですが、どこが間違っているのかわかりません。どの例も、option transparent
バランス モードも必要としていないようです。また、dispatch
オプションのドキュメントは 1.3 のドキュメントから奇妙に省略されていますが、いずれにしてもトラブルシューティングに役立つとは思えません。
どこで間違えたのでしょうか?
答え1
バックエンドにバランシング アルゴリズムが必要なため、「balance roundrobin」行 (または同等の行) を忘れています。また、コンテンツの切り替えを行っているため、フロントエンドまたはデフォルト セクションに「option httpclose」を追加してください。そうしないと、キープアライブ接続の 2 番目の要求が一致しなくなります。