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