共计 1490 个字符,预计需要花费 4 分钟才能阅读完成。
Linux 服务器之 LVS、Nginx 和 HAProxy 负载均衡器对比总结
LVS 特点 :
1. 抗负载能力强,使用 IP 负载均衡技术,只做分发,所以 LVS 本身并没有多少流量产生;
2. 稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)
3. 应用范围比较广,可以对所有应用做负载均衡;
4. 不支持正则处理,不能做动静分离。
常用四种算法:
1.rr:轮叫,轮流分配到后端服务器;
2.wrr:权重轮叫,根据后端服务器负载情况来分配;
3.lc:最小连接,分配已建立连接最少的服务器上;
4.wlc:权重最小连接,根据后端服务器处理能力来分配。
可以采用 ipvsadm –p(persistence)来保持 session,默认是 300/s
Nginx 特点 :
1. 工作在 7 层,可以对做正则规则处理;(如:针对域名、目录进行分流)
2. 配置简单,能 ping 通就能进行负载功能,可以通过端口检测后端服务器状态,不支持 url 检测;
3. 抗高并发,采用 epoll 网络模型处理客户请求;
4. 只支持 HTTP 和 EMail,应用范围比较少;
5.nginx 主要是 HTTP 和反向代理服务器,低系统资源消耗。
常用四种算法:
1.RR:(默认)轮询,轮流分配到后端服务器;
2.weight:根据后端服务器性能分配;
3.ip_hash:每个请求按访问 ip 的 hash 结果进行分配,并发小时合适,解决 session 问题;
4.fair:(扩展策略),默认不被编译 nginx 内核,根据后端服务器响应时间判断负载情况,选择最轻的进行处理。
HAProxy 特点 :
1. 支持两种代理模式:TCP(四层)和 HTTP(七层),支持虚拟主机;
1.配置简单,支持 url 检测后端服务器状态;
2.仅做负载均衡软件使用,在高并发情况下,处理速度高于 nginx;
3.TCP 层多用于 Mysql 从(读)服务器负载均衡。
四种常用算法:
1.roundrobin:轮询,轮流分配到后端服务器;
2.static-rr:根据后端服务器性能分配;
3.leastconn:最小连接者优先处理;
4.source:根据请求源 IP,与 Nginx 的 IP_Hash 类似。
为什么要解决 session 会话呢?
负载均衡环境下,每个用户都有可能不固定的访问后端服务器,在有些应用情况下,是必须要求在一定时间内同一用户访问的所有请求都分配给后端同一台服务器去处理,例如:电子商务网站,用户注册页面等,一刷新页面,就会分配到后端的另一台服务器上,那刚才的页面上的信息也都没了,这种情况下,分配同一台服务器处理请求是至关重要的!
HAproxy 的详细介绍 :请点这里
HAproxy 的下载地址 :请点这里
推荐阅读:
Haproxy+Keepalived 搭建 Weblogic 高可用负载均衡集群 http://www.linuxidc.com/Linux/2013-09/89732.htm
Keepalived+HAProxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm
CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm
Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm
Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm