haproxy
1.简介
haproxy是一款非常的专业的全7层的反向代理负载均衡器,采用的是epoll机制,可以实现4层和7层的负载均衡,4层使用的是tcp模式可以模拟lvs,7层使用的是http模式可以模拟nginx,nginx和haproxy的处理速度都远不及lvs,因为他们是工作在用户空间的,而lvs是工作在内核空间的
在四层(tcp)实现负载均衡的软件:
lvs---------->重量级
nginx-------->轻量级,带缓存功能,正则表达式较灵活
haproxy------>模拟四层转发,较灵活
在七层(http)实现反向代理的软件:
haproxy------>天生技能,全面支持七层代理,会话保持,标记,路径转移;
nginx-------->只在http协议和mail协议上功能比较好,性能与haproxy差不多;
apache------->功能较差
2.负载均衡
(1)环境配置
server1:172.25.26.1作为haproxy服务器
haproxy的安装
tar zxf haproxy-1.7.3.tar.gz
yum install -y rpm-build gcc
yum install -y pcre-devel
rpmbuild -tb haproxy-1.7.3.tar.gz
cd rpmbuild/RPMS/x86_64
rpm -ivh haproxy-1.7.3-1.x86_64.rpm
cd ~/haproxy-1.8.3/examples/
cp content-sw-sample.cfg /etc/haproxy/haproxy.cfg
配置默认文件
vim /etc/haproxy/haproxy.cfg
global
maxconn 10000
stats socket /var/run/haproxy.stat mode 600 level admin
log 127.0.0.1 local0 ##日志输出配置,所有日志都记录在本机 ,通过local0输出
uid 200
gid 200
chroot /var/empty
daemon ##以后台形式运行haproxy
defaults
mode http ##默认模式 tcp是4层,http是七层
log global
option httplog ##日志级别
option dontlognull ##不记录健康检查日志信息
monitor-uri /monitoruri
maxconn 8000
timeout client 30s
option prefer-last-server
retries 2
option redispatch
timeout connect 5s
timeout server 5s
stats uri /admin/stats ##监视窗口
# The public 'www' address in the DMZ
frontend public
bind *:80 name clear ##默认端口
#bind 192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem
#use_backend static if { hdr_beg(host) -i img }
#use_backend static if { path_beg /img /css }
default_backend dynamic ##默认访问后端
#the application servers go here
backend dynamic
balance roundrobin ##轮询
server web1 172.25.26.2:80 check inter 1000
server web2 172.25.26.3:80 check inter 1000
#两个后台的主机,check inter 1000 检测心跳频率
开启服务
/etc/init.d/haproxy start
如果server1的80端口被httpd占用的话,可能不能正常开启
vim /etc/httpd/conf/httpd.conf
136 Listen 8080
更改后重新开启
(3)测试查看
server2和server3开启httpd服务,主机测试curl 172.25.41.1查看是否有负载均衡
主机浏览:
http://172.25.41.1/admin/stats
http://172.25.41.1/monitoruri
刷新
3.认证/刷新
vim /etc/haproxy/hap