13.HAProxy负载均衡
主流负载均衡:lvs、nginx、haproxy介绍
lvs:四层,优点:抗负载能力强、性能较高,软件可以做到F5硬件的60%,对内存和CPU占用比较低,工作在OSI的第四层(传输层),是vrrp协议转发,流量由Linux内核处理;缺点是配置难度较大
nginx:七层,优点:用来处理http,对于http分流、目录结构等比较好用,对网络依赖较低(理论上只要能ping通自己网站就能用nginx做负载均衡),安装很容易,理论上10000并发没有问题;缺点:支持协议较少,只支持http、https、email等,很多不支持,如session和cookie的保持等
haproxy:四层、七层、虚拟主机,性能比nginx稍微高一点,安装起来特别容易,免费,理论上可以支持10Gbps,可以做数据库、邮件等非web负载均衡,有的企业会将它作为mysql读操作的负载均衡
基本信息
安装
yum -y install haproxy
配置文件
/etc/haproxy/haproxy.cfg
守护进程的服务
/usr/lib/systemd/system/haproxy.service
配置文件信息解读
log 127.0.0.1 local2 # 指定使用全局日志的配置
chroot /var/lib/haproxy # 改变当前工作的目录和pid文件
maxconn 4000 # 最大连接数
user haproxy # 运行haproxy的用户
group haproxy # 运行haproxy的组
daemon # 以守护进程运行haproxy
defaults # 默认工作状态
mode http # 使用的协议
log global # 使用全局日志配置
option httplog # 使用日志记录http请求,默认情况下haproxy日志不记录http请求
option dontlognull # 日志不记录空链接
option http-server-close # 每次请求后会主动将http通道关闭
option forwardfor except 127.0.0.0/8 # 服务器上的应用程序相对本地发起请求的话,haproxy会将客户端的IP发送给服务器,会在http请求中添加X-Forwarded-For字段
option redispatch # 如果使用cookie或session重新访问cookie不会刷新,将客户的请求强制定位到后端服务器上保持服务的正常
retries 3 # 如果连接后端服务器连接失败重试3次,如果重试3次都失败会将该服务器标记不可用
timeout http-request 10s # http超时时间10s
timeout queue 1m # 队列超时时间
timeout connect 10s # 连接超时
timeout client 1m # 客户端超时
timeout server 1m # 服务端超时
timeout http-keep-alive 10s # http保持连接时间
timeout check 10s # 检测超时
maxconn 3000 # 每个进程最大连接数
fronted main *:5000 # 前端监听地址
acl url_static path_beg -i /static /images /javascript /stylesheets # 静态文件目录做过滤
acl url_static path_end -i .jpg .gif .png .css .js #
后缀名做过滤
backend static # 动静分离
balance roundrobin # 负载均衡算法
server static 127.0.0.1:4331 check # 静态文件主机
backend app # 后端部分
balance roundrobin # 负载均衡算法
server app1 127.0.0.1:5001 check # 负载分担服务器
server app2 127.0.0.1:5002 check inter 2000 fall 3 weight 3
server app3 127.0.0.1:5003 check
server app4 127.0.0.1:5004 check
inter 2000 # 心跳检测间隔时间;
rise 3 # 三次连接成功,判定为“健康”状态;
fall 3 # 三次连接失败,判定为“不健康”状态;
weight 3 # 权重设置为3
正式使用需要手动打开,默认关闭
systemctl start haproxy
根据配置文件,用户访问5000端口即可,假如我们在5001设置网站内容为AAA,5002设置网站内容为BBB,此时用户访问5000端口内容会在AAA和BBB之间,这样每台服务器压力就会减少
本文来自博客园,作者:icui4cu,转载请注明原文链接:https://www.cnblogs.com/icui4cu/p/16576987.html