Haproxy搭建Web群集

作者 : admin 本文共3835个字,预计阅读时间需要10分钟 发布时间: 2024-06-16 共1人阅读

目录

Haproxy应用分析

Nginx的优点:

Nginx的缺点:

LVS的优点:

LVS的缺点:

HAProxy的优点:

LVS、Nginx、HAProxy的区别?

负载均衡转发性能:

支持的代理类型:

配置维护:

健康检查:

Haproxy应用分析

Haproxy调度算法原理

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

HAProxy的8种调度算法:

使用Haproxy搭建Web群集

默认自带安装包(版本较低)

安装 Haproxy

上传

解压

转移目录安装资源包

创建一个用户

转移到软件包目录编译

指定目录

移动到配置文件

创建一个目录并把配置文件复制进去

 配置文件

移动到启动文件目录

创建软连接

查看版本号 

移动目录添加haproxy

设置开机自启

启动haproxy(无需编译haproxy)

调整和优化

HAProxy 的配置文件共有 5 个域:

重启

在准备俩服务器安装nginx和tomcai(俩台都做)

转移目录配置文件(俩台都做)

另一台

俩台都启动

移动目录准备apache

回到最初主机配置动态网页

新加一台服务器添加动态页面


Haproxy应用分析

LVS在企业应用中抗负载能力很强,但存在不足

LVS不支持正则处理,不能实现动静分离

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

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

适用于负载大的Web站点

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

Nginx的优点:

●工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构。Nginx

正则规则比HAProxy更为强大和灵活。

●Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,LVS对网络稳定性依赖

比较大,稳定要求相对更高。

●Nginx安装和配置、测试比较简单、方便,有清晰的日志用于排查和管理,LVS的配置、测试就要

花比较长的时间了。

●可以承担高负载压力且稳定,一般能支撑几万次的并发量,负载度比LVS相对小些。

●Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等

等。

●Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。

●Nginx作为Web正向加速缓存越来越成熟了,速度比传统的Squid服务器更快,很多场景下都将其

作为向代理加速器。

●Nginx作为静态网页和图片服务器,这方面的性能非常优秀,同时第三方模块也很多。

Nginx的缺点:

●Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些。

●对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。

●不支持Session的直接保持,需要通过ip_hash和cookie的引导来解决。

LVS的优点:

●抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生。因此负载均衡软件里的

性能最强的,对内存和cpu资源消耗比较低。

●LVS工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案。

●无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流

量的影响。

●应用范围较广,因为LVS工作在4层,所以它几乎可对所有应用做负载均衡,包括http、数据库

等。

LVS的缺点:

●软件本身不支持正则表达式处理,不能做动静分离。相对来说,Nginx/HAProxy+Keepalived则具

有明显的优势。

●如果是网站应用比较庞大的话,LVS/DR+Keepalived实施起来就比较复杂了。相对来说,

Nginx/HAProxy+Keepalived就简单多了。

HAProxy的优点:

●HAProxy也是支持虚拟主机的。

●HAProxy支持8种负载均衡策略。

●HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引导,同时支持

通过获取指定的url来检测后端服务器的状态。

●HAProxy跟LVS类似,本身就只是一款负载均衡软件,单纯从效率上来讲HAProxy会比Nginx有更

出色的负载均衡速度,在并发处理上也是优于Nginx的。

●HAProxy支持TCP协议的负载均衡转发。

LVS、Nginx、HAProxy的区别?

负载均衡转发性能:

[ 硬件负载均衡 F5 > ] LVS 最好 > HAProxy 其次 > Nginx 弱于其它两款

支持的代理类型:

LVS是基于Linux内核实现的软负载均衡,只支持四层代理转发,且不支持正则表达式处理,不能

做动静分离

Nginx、HAProxy都是基于应用层实现的软负载均衡,都支持四层和七层代理转发,且也支持正则

表达式处理,能做动静分离

配置维护:

LVS 实施配置复杂,维护成本相对较高

Nginx、HAProxy 配置简单,维护成本较低

健康检查:

LVS可以配合Keepalived实现高可用,以及实现TCP端口或HTTP URL方式的健康检查

Nginx默认只支持被动方式的TCP端口健康检查,主动健康检查需要安装第三方模块

nginx_upstream_check_module后才能支持

HAProxy默认就支持主动的TCP端口、HTTP URL、脚本等方式的健康检查

Haproxy应用分析

LVS在企业应用中抗负载能力很强,但存在不足

LVS不支持正则处理,不能实现动静分离

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

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

适用于负载大的Web站点

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

Haproxy调度算法原理

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

RR(Round Robin)

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

理解举例

有三个节点A、B、C

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

第二个用户访问会被指派到节点B第三个用户访问会被指派到节点C第四个用户访问继续指派到节

点A,轮询分配访问请求实现负载均衡效果

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

SH(Source Hashing)

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

Cookie等做集群调度

理解举例

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

当第一个用户第二次访问时会被继续指派到A,第二个用户第二次访问时依旧会被指派到B,只要

负载均衡调度器不重启,第一个用户访问都会被指派到A,第二个用户访问都会被指派到B,实现

集群的调度

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

大,影响业务使用

HAProxy的8种调度算法:

roundrobin        轮询

static-rr         加权轮询

leastconn         最小连接

source            根据源地址做哈希

uri               根据请求的URI地址做哈希

url_param         根据请求的URL路径里传递的参数做哈希

hdr(NAME)         根据请求头的字段做哈希

rdp-cookie(NAME)  根据cookie里的字段做哈希

使用Haproxy搭建Web群集

Haproxy搭建Web群集插图

默认自带安装包(版本较低)

Haproxy搭建Web群集插图(1) 

可去官网下载

Haproxy搭建Web群集插图(2)

安装 Haproxy

//编译安装

yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

tar zxvf haproxy-1.7.2.tar.gz

cd haproxy-1.7.2/

make TARGET=linux2628 ARCH=x86_64

make install PREFIX=/usr/local/haproxy

上传

Haproxy搭建Web群集插图(3)

解压

Haproxy搭建Web群集插图(4)

转移目录安装资源包

Haproxy搭建Web群集插图(5)

创建一个用户

Haproxy搭建Web群集插图(6)

转移到软件包目录编译

Haproxy搭建Web群集插图(7)

指定目录

Haproxy搭建Web群集插图(8)

移动到配置文件

Haproxy搭建Web群集插图(9)

创建一个目录并把配置文件复制进去

Haproxy搭建Web群集插图(10)

 配置文件

Haproxy搭建Web群集插图(11)

Haproxy搭建Web群集插图(12)

将文件复制到刚才创建的目录中并添加权限

Haproxy搭建Web群集插图(13) 

移动到启动文件目录

Haproxy搭建Web群集插图(14)

创建软连接

Haproxy搭建Web群集插图(15)

查看版本号 

Haproxy搭建Web群集插图(16)

移动目录添加haproxy

Haproxy搭建Web群集插图(17)

设置开机自启

Haproxy搭建Web群集插图(18)

启动haproxy(无需编译haproxy)

Haproxy搭建Web群集插图(19)

Haproxy搭建Web群集插图(20)

调整和优化

HAProxy 的配置文件共有 5 个域:

●global:用于配置全局参数

●default:用于配置所有frontend和backend的默认属性

●frontend:用于配置前端服务(即HAProxy自身提供的服务)实例

●backend:用于配置后端服务(即HAProxy后面接的服务)实例组

●listen:frontend + backend的组合配置,可以理解成更简洁的配置方法,frontend域和backend域

中所有的配置都可以配置在listen域下

Haproxy搭建Web群集插图(21)

Haproxy搭建Web群集插图(22)

 Haproxy搭建Web群集插图(23)

重启

Haproxy搭建Web群集插图(24)

在准备俩服务器安装nginx和tomcai(俩台都做)

Haproxy搭建Web群集插图(25)

转移目录配置文件(俩台都做)

Haproxy搭建Web群集插图(26)

Haproxy搭建Web群集插图(27)转移到另一台服务器上重复上述操作

另一台

Haproxy搭建Web群集插图(28)

俩台都启动

Haproxy搭建Web群集插图(29)

移动目录准备apache

Haproxy搭建Web群集插图(30)

回到最初主机配置动态网页

Haproxy搭建Web群集插图(31)

Haproxy搭建Web群集插图(32)

新加一台服务器添加动态页面

Haproxy搭建Web群集插图(33)

Haproxy搭建Web群集插图(34)

Haproxy搭建Web群集插图(35)

本站无任何商业行为
个人在线分享 » Haproxy搭建Web群集
E-->