HAProxy 使用 ACL 實現多重網域負載平衡筆記
2010年3月12日
佳湖
發表評論
閱讀評論
使用 HAProxy 已經有很長一段時間了。以往都是先交由 Apache 處理網域問題,然後再交給 HAProxy 做後續動作。直到最近我才將 ACL 的機制加入 HAProxy 中,讓 HAProxy 直接取代 Apache 的工作。使得多個網址的一台 WEB 機器也能實現平衡負載的理想。
以下是我的 haproxy.conf 設定範例,僅供參考:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
frontend http-in
bind *:80
acl is_example_com hdr_beg(host) -i example.com
acl is_domain_com hdr_beg(host) -i domain.com
use_backend example_com if is_example_com
use_backend domain_com if is_domain_com
default_backend example_com
backend example_com
balance roundrobin
cookie SERVERID insert nocache indirect
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server Server1 10.1.1.1:80 cookie Server1
server Server2 10.1.1.2:80 cookie Server2
backend domain_com
balance roundrobin
cookie SERVERID insert nocache indirect
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server Server1 192.168.5.1:80 cookie Server1
server Server2 192.168.5.2:80 cookie Server2
[4]