Haproxy负载均衡器
来源:互联网 发布:查看linux系统版本命令 编辑:程序博客网 时间:2024/05/22 11:37
HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机。
HAProxy的特点是:
1、支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作3、支持url检测后端的服务器出问题的检测会有很好的帮助。4、更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现5、单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。6、HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)10、不能做Web服务器即Cache。
实验环境:
系统 rhel6.5 关闭防火墙
实验主机三台:
172.6.6.20 haproxy
172.6.6.30 web30 apache
172.6.6.6 web6 apache
1. 安装haproxy
[root@rhel6-vm2 ~]# rpmbuild -tb haproxy-1.4.23.tar.gz
#如果提示没有rpmbuild命令就需要先安装rpm-build:
yum install rpm-build -y
[root@rhel6-vm2 ~]# rpm -ivh /root/rpmbuild/RPMS/x86_64/haproxy-1.4.23-1.x86_64.rpm
2. 配置
[root@rhel6-vm2 haproxy]# cat haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1global log 127.0.0.1 local0 #指定日志设备 #log 127.0.0.1 local1 notice log loghost local0 info #指定日志类型,还有 err warning debug maxconn 65535 #并发最大连接数量 chroot /usr/share/haproxy #jail 目录 uid 99 #用户 gid 99 #组 daemon #后台运行 #debug #quietdefaults log global mode http #默认使用 http 的 7 层模式 tcp: 4 层 option httplog #http 日志格式 option dontlognull #禁用空链接日志 retries 3 #重试 3 次失败认为服务器不可用 option redispatch #当 client 连接到挂掉的机器时,重新分配到健康的主机 maxconn 65535 contimeout 5000 #连接超时 clitimeout 50000 #客户端超时 srvtimeout 50000 #服务器端超时stats uri /status #haproxy 监控页面listen www.lockey.com *:80#监听的实例名称,地址和端口 balance roundrobin#负载均衡算法 server web1 172.6.6.30:80 cookie app1inst1 check inter 2000 rise 2 fall 5 server web2 172.6.6.6:80 cookie app1inst2 check inter 2000 rise 2 fall 5
3. 基本项测试
# mkdir /usr/share/haproxy# /etc/init.d/haproxy start
测试负载for i in {1..20};do curl localhost;done
访问 haproxy 监控页面:http://172.6.6.20/status
4.为监控页面添加认证信息
listen stats_auth 172.6.6.20:80
stats enable
stats uri /status #监控页面地址
stats auth admin:lockey #管理帐号和密码
stats refresh 5s #刷新频率
5. haproxy 日志:
vim /etc/rsyslog.conf
$ModLoad imudp #接受 haproxy 日志$UDPServerRun 514local0.* /var/log/haproxy.log #日志文件位置
# /etc/init.d/rsyslog restart
6. haproxy+keepalived
要实现haproxy+keepalived就需要额外再多加一个主机(172.6.6.10,haproxy+keepalived)形成主从模式master-backup
master(172.6.6.20)配置:
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedvrrp_script check_haproxy {#检测脚本的配置 script "/opt/check_haproxy.sh" interval 2 weight 2 }global_defs { notification_email { lockey@123.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL}vrrp_instance VI_1 { state MASTER#节点模式为主节点 interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass lockey } virtual_ipaddress { 172.6.6.99 } track_script { check_haproxy }}
backup(172.6.6.10)配置:
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedvrrp_script check_haproxy { script "/opt/check_haproxy.sh" interval 2 weight 2 }global_defs { notification_email { lockey@123.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL}vrrp_instance VI_1 { state BACKUP#节点模式为备份节点 interface eth0 virtual_router_id 51 priority 80#节点优先级较MASTER低 advert_int 1 authentication { auth_type PASS auth_pass lockey } virtual_ipaddress { 172.6.6.99#虚拟ip } track_script { check_haproxy#跟随检测脚本 }}
关于以上配置中涉及到的检测脚本(两台keepalived主机都需要):
[root@rhel6-vm2 opt]# cat check_haproxy.sh
#!/bin/bash/etc/init.d/haproxy status &> /dev/null || /etc/init.d/haproxy restart &> /dev/nullif [ $? -ne 0 ];then /etc/init.d/keepalived stop &> /dev/nullfi
测试描述:
在外部主机的浏览器中访问172.6.6.99(virtual ip),会分别得到来自172.6.6.30和172.6.6.6的apache服务返回的页面。起初虚拟ip在keepalived MASTER节点上,如果我们停掉了主控节点的keepalived服务,那么虚拟ip就会转移到备份节点(BACKUP)上,这称之为ip漂移。只要两个控制节点有一个是正常运行的,那么服务就不会中断。
- Haproxy负载均衡器
- HAProxy负载均衡器后续篇
- HAProxy负载均衡器的配置与算法
- HAProxy负载均衡器的安装及配置
- HAProxy负载均衡器的安装及配置
- HAProxy负载均衡器的安装及配置
- 负载均衡器Nginx、LVS及HAProxy
- 基于Keepalived+Haproxy搭建四层负载均衡器
- 基于Keepalived+Haproxy搭建四层负载均衡器
- 负载均衡器(LVS/HAProxy/Nginx)的特点简介和对比
- 3种LVS/Nginx/HAProxy负载均衡器的对比分析
- 成佩涛-利用haproxy作为mysql的负载均衡器
- 基于Keepalived+Haproxy搭建四层负载均衡器
- 3种LVS/Nginx/HAProxy负载均衡器的对比分析
- 3种LVS/Nginx/HAProxy负载均衡器的对比分析
- 3种LVS/Nginx/HAProxy负载均衡器的对比分析
- 3种LVS/Nginx/HAProxy负载均衡器的对比分析
- 基于Keepalived+Haproxy搭建四层负载均衡器
- 在线函数画图
- FastDFS的使用
- springboot的通用BaseDAO写法
- 常见的数据库操作
- mybatis typeHandler
- Haproxy负载均衡器
- JavaScript 不同种类函数
- 数据库开发技术 课堂笔记4
- 关于sudo dpkg-divert --local --rename --add /sbin/initctl导致的开机无图标解决方法
- 简析fork和vfork区别以及进程和线程的区别和联系
- C++右值引用
- Struts2的架构和执行流程
- [HDU 6209] The Intersection
- mybatis environments