HAProxy的配置文件haproxy.cfg文件由两大部分组成。分别是global和proxies部分。
global
- 进程及安全配置相关的参数
- 性能调整相关参数
- Debug参数
proxies
- defaults:为frontend、backend、listen提供默认配置
- frontend:前端 clinet to haproxy
- backend:后端 haproxy to real-server
- listen:同时拥有前端和后端配置
global配置
chroot /var/lib/haproxy #锁定运行目录,即使被黑客也只能打开改目录
pidfile /var/run/haproxy.pid #指定PID文件路径
nbproc #开启的进程数,与CPU一致
nbthread #开启进程的线程数,在多个进程情况下,配一个线程
maxconn 4000 #最大并发连接数
maxsslconn #最大ssl连接数,证书配置情况下配置
maxconnrate #每秒创建的最大连接数
user haproxy #运行haproxy的用户身份,也可uid\gid指定
group haproxy
daemon #以守护进程运行
spread-checks #检查后端server状态提前或延迟百分比时间,建议2-5之间
log 127.0.0.1 #local2 log日志,最多两个
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
proxies配置-defaults
defaults
option redispatch #当对应IP的服务器宕机后强制定向至健康的服务器
option abortonclose #当服务器负载很高时,自动结束掉当前队列处理比较久的连接
option http-keep-alive #开启与客户端的会话保持
option forwardfor #透传客户端真实IP至后端服务器
mode http #设置默认工作类型
timeout http-keep-alive 120s #会话保持超时时间,范围内会转发到相同的后端服务器
timeout connect 120s #客户端请求从haproxy到后端server的最长连接等待时间
timeout server 600s #客户端请求从haproxy到后端server的请求处理超时时长
timeout client 600s #设置haproxy和客户端的最长非活动时长
timeout check 5s #对后端server的默认检测超时时间
maxconn 3000
proxies配置-frontend和-backend
frontend web-ports-80
bind 10.0.0.17:80
mode http
ues_backend web-nodes
backend web-nodes
mode http
option forwardfor
server 10.0.0.8:80 check inter 3000 fall 3 rise 5
server 10.0.0.18:80 check inter 3000 fall 3 rise 5
check #对指定server进行健康状态检查
可指定IP和端口
inter #检查间隔时间,默认2000ms
fall #失效检查次数,默认3
rise #后端服务器重新上线检查次数,默认2
weight #负载均衡权重,0不参与,默认1,最大256
backup #将后端服务器标记为被人状态
disabled #将后端服务器标记为不可用
proxies配置-listen
listen web-ports-80
bind 10.0.0.17:80
mode http
server web1 10.0.0.8:80 check inter 3000 fall 3 rise 5
server web2 10.0.0.18:80 check inter 3000 fall 3 rise 5