HAProxy和Lvs、nginx对比
1.功能比较多:web服务代理(多)|smpt|pop3等(tcp协议族里面的都可以)
2.支持节点的健康检查(Nginx无),当服务器出现故障时回被HAproxy自动摘除,恢复时,回被自动添加进去。代理模式,类似于Lvs的nat模式,web服务器都是在私网之内的,不会暴露在公网上,所有的节点服务器不再需要公网地址(不会轻易被攻击)。
3.主要支持两种模式:
(1)基于4层的tcp代理模式(Mysql|邮件服务|HTTPs服务等):仅在客户端的服务器之间进行流量转发
(2)基于7层的http代理模式:会分析应用层的协议,并且通过允许、拒绝、交换、增加、修改、删除请求或者回应里指定内容来控制协议
基于4层:
client--负载均衡器(Nginx|HAProxy|Lvs)--web服务器--内网交换机--RS--web--负载均衡器--client
*吞吐量有限制
基于7层:
haproxy与apache实现负载均衡
在server3中
yum install -y haproxy
vim /etc/haproxy/haproxy.cfg
...
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0 #日志输出配置,所有日志都记录在本机,通过 local0 输出
# log 127.0.0.1 local1 notice ##定义 haproxy 日志级别
#log loghost local0 info
maxconn 4096
##默认最大连接数
chroot /usr/share/haproxy #chroot 运行路径
uid 99 #运行 haproxy 用户 uid
gid 99 #运行 haproxy 用户 gid
daemon #以后台形式运行 haproxy
nbproc 1 #设置进程数量
#debug
#quiet
defaults
log global
mode
http
##默认模式 tcp 是 4 层(转发) http 是 7 层(代理)
option httplog #日志级别
option dontlognull #不记录健康检查日志信息
retries 2
#2 次连接失败就认为服务器不可用
option redispatch
maxconn 2000
#最大连接数
contimeout 5000
#连接超时
clitimeout
50000
##客户端超时
srvtimeout
50000 ##服务器超时frontend web
bind *:80
default_backend webserver
#默认访问后端为 webserver
backend webserver
mode http
balance roundrobin ##轮询
server server7 172.25.66.4:80 check inter 2000 rise 2 fall 5
server server8 172.25.66.5:80 check inter 2000 rise 2 fall 5
#check inter 2000 检测心跳频率 rise 2 2 次正确热播为服务器可用fall5 失败5次服务器不可用
.....
启动:
/et/init.d/haproxy start
在 server4和server5上
yum install -y httpd
/etc/init.d/httpd start
echo server4 > /vae/www/html/index.html
echo server5> /vae/www/html/index.html
测试:
curl 172.25.66.3
curl 172.25.66.3
server4
curl 172.25.66.3
serer5
curl 172.25.66.3
server4
curl 172.25.66.3
server5
1118

被折叠的 条评论
为什么被折叠?



