Haproxy
Haproxy提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 web 站点, 这些站点通常又需要会话保持或七层处理。HAProxy 运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整 合进您当前
的架构中, 同时可以保护你的 web 服务器不被暴露到网络上。
实验环境:rhel6.5 selinux and iptables disabled
实验主机: 172.25.22.10 haproxy
172.25.22.40 web1
172.25.22.50 web2
软件包: haproxy-1.4.24.tar.gz
yum install -y rpm-build
rpmbuild -tb haproxy-1.4.24.tar.gz
出现报错,yum install -y pcre-devel
再次执行rpmbuild -tb haproxy-1.4.24.tar.gz
没有错误后 cd ~/rpmbuild/RPMS/x86_64/
rpm -ivh haproxy-1.4.24-1.x86_64.rpm
Haproxy安装完成。
配置:
vi /etc/haproxy/haproxy.cfgglobal
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
#quiet
defaults
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
#haproxy 监控页面
/status
listen www.example.com *:80
balance roundrobin
#监听的实例名称,地址和端口
#负载均衡算法
server web1 172.25.22.40:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server web2 172.25.22.50:80 cookie app1inst2 check inter 2000 rise 2 fall 5
#cookie app1inst1:表示 serverid 为 app1inst1
#check inter 2000:检测心跳频率
#rise 2:表示 2 次正确认为服务器可用
#fall 5:表示 5 次失败认为服务器不可用
启动haproxy时出现错误
mkdir /usr/share/haproxy
在配置文件加入option(红色标注)
重新启动haproxy:/etc/init.d/haproxy start
访问http://172.25.22.10/status访问haproxy监控页面