文章目录
- 一.案例概述
- 2.1 HTTP请求
- 2.2 负载均衡常用调度算法
- ①RR(Round robin)
- ②LC(least connections)
- ③SH(source hashing)
- 2.3 常见的web群集调度器
- 3.实验环境
- 二.实验步骤
- 1.两台web网站步骤相同 安装web服务(nginx,apache)
- ①安装web网站
- ②在网页目录创建网站
- 2.haproxy服务器配置
- ①安装haproxy
- ②修改配置文件
- 3.测试web集群
- 4.haproxy日志文件
- ①修改haproxy配置文件 将原有日志配置修改
- ②配置rsyslog服务
- 查看日志文件是否生成查看客户端真实IP
一.案例概述
**proxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,
如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂;Nginx的
upstream模块支持群集功能,但是对群集节点健康检查功能不强,高并发性能
没有Haproxy好。Haproxy官方网站是http://www.haproxy.org/。
2.1 HTTP请求
通过URL访问网站使用的协议是HTTP协议,此类请求一般称为HTTP/请
求。HTTP请求的方式分为GET方式和POST方式。当使用浏览器访问某一个
URL,会根据请求URL返回状态码,通常正常的状态码为2XX、3XX(如200、
301),如果出现异常会返回4XX、5XX(如400、500)。
2.2 负载均衡常用调度算法
调度算法有三种
①RR(Round robin)
RR算法是最简单最常用的一种算法,即轮询调度。
例如,有三个节点A、B、C,第一个用户访问会被指派到节点A,第二个用户访
问会被指派到节点B,第三个用户访问会被指派到节点C,第四个用户访问继续
指派到节点A,轮询分配访问请求实现负载均衡效果。此算法还有一种加权轮询,
即根据每个节点的权重轮询分配访问请求。
②LC(least connections)
LC算法即最小连接数算法,根据后端的节点
连接数大
小动态分配前端请求。例如,有三个节点A、B、C,各节点的连接数分别为A:
4、B:5、C:
6,此时如果有第一个用户连接请求,会被指派到A上,连接数变为A:5、B:
5、C:6;第二个用户请求会继续分配到A上,连接数变为A:6、B:5、C:6;
再有新的请求会分配给B,每次将新的请求指派给连接数最小的客户端。由于实
际情况下A、B、C的连接数会动态释放,很难会出现一样连接数的情况,因此
此算法相比较rr算法有很大改进,是目前用到比较多的一种算法。
③SH(source hashing)
SH即基于来源访问调度算法,此算法用于一些有
Session会话记录在服务器端的场景,可以基于来源的IP、Cookie等做群集调
度。例如,使用基于源IP的群集调度算法,有三个节点A、B、C,第一个用户
第一次访问被指派到了A,第二个用户第一次访问被指派到了B,当第一个用户
第二次访问时会被继续指派到A,第二个用户第二次访问时依旧会被指派到B,
只要负载均衡调度器不重启,第一个用户访问都会被指派到A,第二个用户访问
都会被指派到B,实现群集的调度。此调度算法好处是实现会话保持,但某些IP
访问量非常大时会引起负载不均衡,部分节点访问量超大,影响业务使用。
2.3 常见的web群集调度器
目前,常见的Web群集调度器分为软件和硬件。软件通常使用开源的LyS、
Haproxy、Nginx,硬件一般使用比较多的是F5。也有很多人使用国内的一些产
品,如梭子鱼、绿盟等
3.实验环境
haproxy是192.168.10.101
web1网站:192.168.10.102
web2网站:192.168.10.103
实验前关闭防火墙与selinux机制或者添加防火墙策略
二.实验步骤
1.两台web网站步骤相同 安装web服务(nginx,apache)
①安装web网站
②在网页目录创建网站
2.haproxy服务器配置
①安装haproxy
②修改配置文件
Haproxy配置项介绍:
Haproxy配置文件通常分为三个部分,即global、defaults和listen。
global为全局配置,defaults为默认配置,listen为应用组件配置。
这是全局项
log #配置日志文件记录,local2为日志设备,默认存放到系统日志
maxconn #最大连接数
user #程序用户
group #程序组
defaults配置项配置默认参数,一般会被应用组件继承,如果在应用组件
中没有特别声明,将按照默认配置参数设置。
listen配置项是配置应用模块参数
listen webcluster
//定义一个appli4-backup的应用
bind 0.0.0.0:80
//监听所有网卡的80端口
option httpchk GET /index. html
//通过GET/index.html检查服务器
建康状态
balanceroundrobin//负载均衡调度算法使用轮询算法
serverinst1 192.168.10.101:80checkinter2000fall3 //后端服务
器1,每2秒检查一次,3次失败后下线
server inst2 192.168.10.102:80 check inter 2000 fall 3
3.测试web集群
通过代理服务器调度到后端服务器
通过上面的步骤,已经搭建完成Haproxy的Web群集,接下来需要验证群
集是否工作正常。一个群集一般需要具备两个特性,第一个是高性能,第二个是
高可用
查询http日志文件查看是否是代理服务器访问网站
4.haproxy日志文件
Haproxy的日志默认输出到系统的syslog中,查看起来不是非常方便,为
了更好地管理Haproxy的日志,在生产环境中一般单独定义出来
①修改haproxy配置文件 将原有日志配置修改
②配置rsyslog服务
创建rsyslog的haproxy日志文件规则