首頁 > 軟硬體 & 系統 > HAProxy 使用 ACL 實現多重網域負載平衡筆記

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
Categories: 軟硬體 & 系統 Tags: , ,