Haproxy搭建Web群集

时间:2021-08-29 21:50:23   收藏:0   阅读:49

常见的web集群调度器

目前常见的web集群调度器分为软件和硬件
软件通常使用开源的LVS、Haproxy、Nginx
硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等

Haproxy应用分析

LVS在企业应用中抗负载能力很强,但存在不足
? LVS不支持正则处理,不能实现动静分离

? 对于大型网站,LVS的实施配置复杂,维护成本相对较高

Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理软件
? 适用于负载大的web站点

? 运行在硬件上可支持数以万计的并发连接的连接请求

Haproxy调度算法原理

Haproxy 支持多种调度算法,最常用的有三种

1、RR(Round Robin)

RR算法是最简单最常用的一种算法,即轮询调度

例如:
? 有三个节点A、B、C

? 第一个用户访问会被指派到节点A

? 第一个用户访问会被指派到节点B

? 第一个用户访问会被指派到节点C

? 第四个用户访问会被指派到节点A,轮询分配访问请求实现负载均衡效果

2、LC(Least Connections)

最小连接数算法,根据后端的节点连接数大小动态分配前端请求

例如:

? 有三个节点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算法有很大改进,是目前用到比较多的一-种算法

3、SH(Source Hashing)

基于来源访问调度算法,用于一些有Session会记录在服务器端的场景,可以基于来源的IP、Cookie等做集群调度

例如:

? 有三个节点A、B、C,第一个用户第一次访问被指派到了A,第二个用户第一次访问被指派到了B

? 当第一个用户第二次访问时会被继续指派到A,第二个用户第二次访问时依旧会被指派到B,只要负载均衡调度器不重启,第一个用户访问都会被指派到A,第二个用户访问都会被指派到B,实现集群的调度

? 此调度算法好处是实现会话保持,但某些IP访问量非常大时会引|起负载不均衡,部分节点访问量超大,影响业务使用

Haproxy的主要特性

Haproxy常见的负载均衡策略

LVS、Nginx、HAproxy的区别

LVS基于Linux操作系统实现软负载均衡,而HAProxy和Nginx是基于第三方应用实现的软负载均衡;

LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nainx都可以实现4层和7层技术,HAProxy可提供TCP和HrTP应用的负载均衡综合解决方案

LVS因为工作在ISO模型的第四层,其状态监测功能单一, 而HAProxy在状监测方面功能更丰富、强大, 可支持端口、URL、脚本等多种状态检测方式;

HAProxy功能强大,但整体性能低于4层模式的LVS 负载均衡。

Nginx主要用于Web服务器或缓存服务器。

Haproxy集群的构建

准备工作:
Haproxy服务器:192.168.247.40
Nginx 服务器1:192.168.247.10
Nginx 服务器2:192.168.247.20
客户端:192.168.80.88

1.关闭防火墙,将安装Haproxy所需软件包传到/opt目录下

技术分享图片

2.编译安装 Haproxy

技术分享图片
技术分享图片
技术分享图片
技术分享图片

3.Haproxy服务器配置

技术分享图片
技术分享图片
技术分享图片
技术分享图片

4.添加haproxy 系统服务

技术分享图片

配置两台节点服务器

技术分享图片
技术分享图片

haproxy 查看 集群状态

技术分享图片
关闭192.168.247.10的nginx
技术分享图片
关闭192.168.247.20的nginx
技术分享图片

访问测试

技术分享图片

配置Haproxy 的监控页面与 Haproxy 的日志自定义

配置Haproxy 的监控页面

技术分享图片
技术分享图片
技术分享图片

Haproxy 日志自定义

默认haproxy 的日志是输出到 系统的系统日志中,使用不是非常方便。为了更好的管理haproxy的日志,可以将haproxy的日志单独定义出来。需要修改 rsyslog 配置,为了方便管理,将haproxy 相关的配置独立定义到haproxy.conf中,并放到/etc/rsyslog.d/下,rsyslog启动时,会自动加载此目录下的所有配置文件
技术分享图片

技术分享图片

原文:https://www.cnblogs.com/zhouruan/p/15196580.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!