目录
一、常见的Web集群调度器
- 目前常见的Web集群调度器分为软件和硬件
- 软件通常使用开源的LVS、Haproxy、Nginx
- LVS性能最好,但是搭建相对复杂;
- Nginx的upstream模块支持集群功能,但是对集群节点健康检查功能不强,高并发没有Haproxy好
- 硬件一般使用的比较多的是F5,也有很多人使用梭子鱼、绿盟等国内产品
二、Haproxy应用分析
- LVS在企业应用中抗负载能力很强,但存在不足
- LVS不支持正则处理,不能实现动静分离
- 对于大型网站,LVS的实施配置复杂,维护成功相对较高
- Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件
- 适用于负载大的Web站点
- 运行在硬件上可支持数万计的并发连接的连接请求
三、Haproxy调度算法原理
Haproxy支持多种调度算法,最常用的有三种
- RR (Round Robin)
- RR算法是最简单常用的一种算法,即轮询调度
- LC(Least Connections)
- 最小连接数算法,根据后端的节点连接数大小动态分配前端请求。
- SH(Source Hashing)
- 基于来源访问调度算法,用于一些有Session会话记录在服务器端的场景,可以基于来源的IP、Cookie等做集群调度
四、Haproxy搭建 Web 群集
1、编译安装Nginx服务器
Nginx-Server1:192.168.120.20
Nginx-Server2:192.168.120.30
2、编译安装 Haproxy
2、测试 Web集群
五、日志定义
默认haproxy的日志是输出到系统的syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。需要将haproxy的info及notice日志分别记录到不同的日志文件中。
需要修改rsyslog配置,为了便于管理。将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件。
说明:
这部分配置是将haproxy的info日志记录到/var/log/haproxy/haproxy-info.log下,将notice日志记录到/var/log/haproxy/haproxy-notice.log下。“&~”表示当日志写入到日志文件后,rsyslog停止处理这个信息。