Haproxy负载均衡
nginx 四层转发 七层代理
(图片来源网络,侵删)
lvs 四层转发内核态 用户态
Haproxy 四层转发,七层转发
1、Haproxy的作用和使用场景
1、场景 主要用户高并发的web场景,可以支出1万个以上的并发请求,高性能的tcp和http的负载均衡器。
2、工作原理
haproxy就像LVS的调度器,高可用即实现两台haproxy服务器一主一备。
3、作用
1、进行四层和七层转发
2、主持https
3、haproxy本身不自带缓存功能,可以在请求当中添加cookie,使用缓存功能
4、支持主备切换(keepalive)
4、特点
可靠性高,稳定性好
可以同时维护4万-5万并发,单位时间内可以处理的最大请求数是2万个(单位时间:1秒或者1分钟)
支持负载均衡算法,虽然不带缓存,但是可以支持会话保持
rr
wrr
leastconn
5、实验
Haproxy安装
#haproxy安装包存放在/opt cd /opt tar -xf haproxy-1.5.19.tar.gz mv haproxy-1.5.19 haproxy cd haproxy/ uname -r #查看本机的内核版本 make TARGET=linux2628 ARCH=x86_64 #TARGET内核版本要低于本机的内核版本,架构是x86_64 make install mkdir /etc/haproxy cd examples cp haproxy.cfg /etc/haproxy
对haproxy配置文件进行设置
vim /etc/haproxy/haproxy.cfg global #4-5行 log /dev/log local0 info log /dev/log local1 notice maxconn 4096 #最大连接数,推荐使用10240,需要系统内核参数修改最大打开文件数 #注释下一行 #chroot /usr/share/haproxy #添加下一行 nbproc 4 #Haproxy的并发线程数,设置的数量最好是CPU的2倍或者和CPU保持一致 defaults #默认参数配置,包括连接配置、监听配置以及代理配置 option httplog #类型 http日志 retries 3 #检查节点服务器3次,连续3次失败,就认为节点服务器不可用 redispatch #服务器负载很高时,自动结束当前队列中处理比较久的连接 maxconn 2000 #最大连接数,不能超过global设置的maxconn #下面三行注释掉,已经不用了 #contimeout #clitimeout #srvtimeout timeout http-request 10s #http请求的默认超时时间 timeout queue 1m #在队列当中请求的超时时间 timeout connect 10s #连接超时时间 timeout client 1m #客户端超时时间 timeout server 1m #服务端超时时间 timeout http-keep-alive 10s #默认长连接的超时时间(不是会话保持) timeout check 10s #检查后端服务器的超时时间 #转发请求的设置,既可以是四层,也可以是七层 #四层和七层择其一,不要都写 #七层转发的配置 listen yang1 0.0.0.0:80 option httpchk GET /index.html #设置转发请求的内容,方式GET, 获取内容 index.html balance static-rr #轮询算法 server rs01 192.168.10.41:80 check inter 2000 fall 3 weight 2 server rs02 192.168.10.42:80 check inter 2000 fall 3 weight 3 #server 指定真实服务器,rs01 自定义后端服务器名称 #check inter 2000 :启动对后端服务器进行健康检查,检查的间隔时间2000ms #fall 3 连续三次检查不到,任务失败 #四层转发 #四层转发的配置 frontend test #定义服务的名称为test,前端名为test bind *:80 #监听所有网络接口,端口为80 mode tcp #设置负载均衡的模式为TCP default_backend test #指定默认后端服务名为test backend test #定义后端名为test,负责处理前端传递来的请求 mode tcp #前后端模式匹配,都设置为TCP balance roundrobin #设置负载均衡算法为轮询,即rr server rs01 192.168.10.41:80 check inter 2000 fall 3 weight 2 server rs02 192.168.10.42:80 check inter 2000 fall 3 weight 3 #保存配置
让haproxy命令可以被系统识别到
cd /haproxy/example cp haproxy.init /etc/init.d/haproxy chmod 777 /etc/init.d/haproxy chkconfig --add /etc/init.d/haproxy ln -s /usr/local/sbin/haproxy /usr/sbin
启动haproxy服务
systemctl start haproxy
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
