haproxy.cfg
global # 全局配置
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096 # 最大連接數
uid 1005 # 所屬運行的用戶UID
gid 1005 # 所屬運行的用戶組
daemon # 以後臺形式運行HAProxy
#nbproc # 啓動1個實例,可以啓多個來提高效率
#pidfile /var/run/haproxy.pid
defaults # 默認配置
log global
mode http
option httplog
option dontlognull
retries 3 # 重試次數
#option httpclose # 每次請求完畢後主動關閉http通道
option redispatch # 當serverId對應的服務器掛掉後,強制定向到其他健康的服務器
#option abortonclose # 當服務器負載很高的時候,自動結束掉當前隊列處理比較久的鏈接
#option dontlognull # 保證HAProxy不記錄上級負載均衡發送過來的用於檢測狀態沒有數據的心跳包
maxconn 2000 # 最大連接數
#balance source # 如果想讓HAProxy按照客戶端的IP地址進行負載均衡策略,即同一IP地址的所有請求都發送到同一服務器時需要配置此選項
timeout connect 5000
timeout client 50000
timeout server 50000
listen admin_stats # 配置段通過關聯“前端”和“後端”定義了一個完整的代理,通常只對TCP流量有用
bind 0.0.0.0:1080 # 監聽端口
mode http # http的7層模式
option httplog # 採用http日誌格式
maxconn 10
stats refresh 30s # 統計頁面自動刷新時間
stats uri /stats # 統計頁面url
stats realm yooCloud Haproxy # 統計頁面密碼框上提示文本
stats auth admin:admin # 統計頁面用戶名和密碼設置
stats hide-version # 隱藏統計頁面上HAProxy的版本信息
frontend weblb # 配置段用於定義一系列監聽的套接字,這些套接字可接受客戶端請求並與之建立連接
bind *:80
acl is_dg hdr_beg(host) dg.test.com # 該行定義一個is_dg規則,如果客戶端請求的是dg.test.com這個域名,則定義該規則爲is_dg
acl is_ilanni hdr_beg(host) ilanni.test.com
acl is_171 hdr_beg(host) 172.18.19.101
acl is_ip src 172.18.19.102 # 該行定義一個is_ip規則,如果客戶端的IP地址是192.168.5.140,則定義該規則爲is_ip
use_backend acl if is_171 is_ip # 該定義一個acl服務器組,如果客戶端請求同時符合is_ip和is_171定義的規則,則把該客戶端的請求分發到acl服務器組
use_backend dgserver if is_dg # 該定義一個dgserver服務器組,如果客戶端請求符合is_dg定義的規則,則把該客戶端的請求分發到dgserver服務器組
use_backend ilanni if is_ilanni
use_backend 171server if is_171
default_backend backend_default # 該行定義一個默認服務器組,如果客戶端請求不符合上述定義的任何一個規則,則把該客戶端的請求分發到backend_default服務器組
backend dgserver # 配置段用於定義一系列“後端”服務器,代理將會將對應客戶端的請求轉發至這些服務器
balance source
server web1 172.18.19.101:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3
server web2 172.18.19.102:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3
server web3 172.18.19.103:8080 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3
backend 171server
balance roundrobin
server dg1 172.18.19.102:80 check
server dg2 172.18.19.103:80 check
backend ilanni
server web1 www.yuanbaopu.com:80 weight 3 check inter 2000 rise 2 fall 3
backend acl
balance source
server web1 www.ilanni.com:80 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3
backend backend_default
server web1 192.168.5.178:8080 weight 3 check inter 2000 rise 2 fall 3
listen 8090
bind 0.0.0.0:8090
mode http
balance roundrobin
server web1 192.168.5.174:8090 maxconn 1024 weight 5 check inter 2000 rise 2 fall 3
server web2 192.168.5.178:8090 maxconn 1024 weight 3 check inter 2000 rise 2 fall 3