实现基于Haproxy+Keepalived负载均衡高可用架构

上上期我们实现了keepalived主从高可用集群网站架构,随着公司业务的发展,公司负载均衡服务已经实现四层负载均衡,但业务的复杂程度提升,公司要求把mobile手机站点作为单独的服务提供,不在和pc站点一起提供服务,此时需要做7层规则负载均衡,运维总监要求,能否用一种服务同既能实现七层负载均衡,又能实现四层负载均衡,并且性能高效,配置管理容易,而且还是开源。

四层和七层负载均衡的区别:

四层:

通过分析IP层及TCP/UDP层的流量实现的基于"IP+端口"的负载均衡。

七层:

可以根据内容,再配合负载均衡算法来选择后端服务器,不但可以根据"ip+端口"方式进行负载分流,还可以根据网站的URL,访问域名,浏览器类别,语言等决定负载均衡的策略。

七层负载均衡模式下,负载均衡与客户端及后端的服务器会分别建立一次TCP连接,而在四层负载均衡模式下(DR),仅建立一次TCP连接;七层负载均衡对负载均衡设备的要求更高,处理能力也低于四层负载均衡。

场景说明

在企业生产环境中,每天会有很多的需求变更,比如增加服务器、新业务上线、url路由修改、域名配置等等,对于前端负载均衡设备来说,容易维护,复杂度低,是首选指标。在企业中,稳定压倒一切,与其搞得很复杂,经常出问题,不如做的简单和稳定。

在企业中,90%以上的故障,来源于需求变更。可能是程序bug,也可能是人为故障,也可能是架构设计问题等等。

前端负载均衡设备为重中之重,在软件选型上一定充分考虑,能满足业务的前提下,尽可能降低复杂度,提高易维护性。

 

2.模块讲解: Haproxy是什么

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高性能性、负载均衡,以及基于TCP和HTTP的应用程序代理。相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项,更精细的控制,更多的健康状态检测机制和负载均衡算法。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

包括 GitHub、Bitbucket、Stack Overflow、Reddit、Tumblr、Twitter在内众多知名网站,及亚马逊网络服务系统都使用了HAProxy。

Haproxy的特性

1、可靠性与稳定性都非常出色,可与硬件级设备媲美。

2、支持连接拒绝,可以用于防止DDoS攻击

3、支持长连接、短连接和日志功能,可根据需要灵活配置

4、路由HTTP请求到后端服务器,基于cookie作会话绑定;同时支持通过获取指定

的url来检测后端服务器的状态

5、HAProxy还拥有功能强大的ACL支持,可灵活配置路由功能,实现动静分离,

在架构设计与实现上带来很大方便

6、可支持四层和七层负载均衡,几乎能为所有常见的服务提供负载均衡功能

7、拥有功能强大的后端服务器的状态监控web页面,可以实时了解设备的运行状态,还可实现设备上下线等简单操作。

8、支持多种负载均衡调度算法,并且也支持session保持

 

3.实战演练 实验:实现基于Haproxy+Keepalived负载均衡高可用架构

实现基于Haproxy+Keepalived负载均衡高可用架构

一、环境准备:

centos系统服务器4台、两台用于做haproxy主从架构,两台作为后端server,服务器配置好

yum源、防火墙关闭、各节点时钟服务同步、各节点之间可以通过主机名互相通信

 

机器名称

 

IP配置

 

服务角色

 

备注

 

haproxy-server-master

 

VIP:172.17.253.100

DIP:172.17.253.132

 

负载均衡器

 

开启路由功能

配置keepalived

 

haproxy-server-master

 

VIP:172.17.253.100

DIP:172.17.252.162

 

负载均衡器

 

开启路由功能

配置keepalived

 

rs1

 

RIP:172.17.251.236

 

后端服务器

 

网关指向DIP(桥接)

 

rs2

 

RIP:172.17.251.137

 

后端服务器

 

网关指向DIP(桥接)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfyjj.html