赞
踩
核心配置
HAProxy 的配置文件haproxy.cfg由两大部分组成,分别是global和proxies部分 global:全局配置段 进程及安全配置相关的参数 性能调整相关参数 proxies:代理配置段 defaults:为frontend, backend, listen提供默认配置 frontend:前端,相当于nginx中的server {} backend:后端,相当于nginx中的upstream {} listen:同时拥有前端和后端配置 golbal配置: chroot /opt/haproxy #锁定运行目录 deamon #以守护进程运行 pidfile /run/haproxy.pid #指定pid文件路径 stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin #socket文件 user, group, #运行haproxy的用户身份 nbproc 1 #work进程数,默认进程数一个,建议与CPU核心一致 cpu-map 1 0 #第一个work进程与0号CPU绑定 maxconn 100000 #每个haproxy进程的最大并发连接数 maxsslconn n #每个haproxy进程ssl最大连接数,用于haproxy配置了证书的场景下 maxconnrate n #每个进程每秒创建的最大连接数量 spread-checks n #后端server状态check随机提前或延迟百分比时间,建议2-5(20%-50%)之间 log 127.0.0.1 local2 info #定义全局的syslog(443)服务器;最多可以定义两个
Proxies配置
defaults 配置: #default的配置可以写入到frontend或backend中 option redispatch #当服务器挂掉后,强制定向到其他健康的服务器 option http-keep-alive #开启持久连接 option forwardfor #透传客户端真实IP至后端web服务器 mode http|tcp #设置默认负载协议类型,tcp协议性能更好 timeout connect 600s #会话最长等待时间 timeout client 600s #客户端最长非活动时长 timeout server 600s #请求处理超时时长 #frontend结合backend 配置: frontend http_80 bind 10.0.0.8:80 #指定HAProxy的监听地址,可以同时监听多个IP或端口 mode http|tcp use_backend http_nginx #调用的后端服务器组名称 backend http_nginx option forwardfor server 10.0.0.7 10.0.0.7:80 check inter 3000 fall 3 rise 5 server 10.0.0.17 10.0.0.17:80 check inter 3000 fall 3 rise 5 #listen 代替frontend+backend 配置 listen web_80 bind 172.16.0.8:80 log global server 10.0.0.7 10.0.0.7:80 check inter 3000 fall 2 rise 3 server 10.0.0.17 10.0.0.17:80 check inter 3000 fall 2 rise 3 #server段的option选项 check #对后端服务器进行健康状态检查 inter 2s #每隔两s进行一次健康性检查 fall 3 #连续三次检查失败,则下线调度列表 rise 3 #连续三次检查成功,则上线调度列表 weight 1 #权重设置,0表示不参与负载均衡,但仍接受持久连接 backup #将后端主机标记为备份状态,只在所有非备份主机down机时提供服务 disabled #将后端服务器标记禁用状态,将不再接受连接 redir http://www.baidu.com #将请求临时(302)重定向至其它URL,只适用于http模式 maxconn 1000 #当前后端server的最大并发连接数
使用子配置文件保存配置
mkdir /etc/haproxy/conf.d/
#添加子配置目录到service文件中,必须是.cfg后缀的文件
vim /lib/systemd/system/haproxy.service
...
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf.d/ -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf.d/ -p /var/lib/haproxy/haproxy.pid
systemctl daemon-reload
systemctl restart haproxy
环境准备
客户端: eth0:172.16.0.6
Haproxy: eth0: 10.0.0.8
eth1:172.16.0.8
后端web: web1: 10.0.0.7
web2:10.0.0.17
listen替代frontend+backend
#当外网主机访问172.16.0.8将请求调度到后端web服务器
listen web_80
bind 172.16.0.8:80
log global
server 10.0.0.7 10.0.0.7:80 check inter 3000 fall 2 rise 3
server 10.0.0.17 10.0.0.17:80 check inter 3000 fall 2 rise 3
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。