版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
千万级高并发负载均衡软件——HAProxyLinux服务器安全管理高级运维项目12“十四五”高等教育网络空间安全产业人才培养系列丛书“互联网+”新形态立体化一体精品教材+HAProxy01HAProxy简介作为一款专业的负载均衡软件,HAProxy具有极高的可靠性和稳定性,与硬件级的F5负载均衡设备不相上下。它每单位时间内能够处理20000个请求,最高可以同时维护40000~50000个并发连接,并具备高达10Gbit/s的最大数据处理能力。作为软件级别的负载均衡软件,HAProxy表现优异。它支持超过8种负载均衡算法,也支持会话保持。此外,它还提供虚拟主机功能,使Web负载均衡更加灵活。HAProxy1.3之后的版本引入了连接拒绝、全透明代理等功能,而其他负载均衡器无法提供这些功能。HAProxy拥有一个功能强大的服务器状态监控页面,可以实时了解系统的运行状况。HAProxy拥有功能强大的ACL支持,为用户带来了很大的便利。HAProxy利用操作系统的技术特性来实现性能最大化,因此在使用HAProxy时,将操作系统性能调优至关重要。在业务系统方面,HAProxy适用于具有特别大并发量、需要持久连接或七层处理机制的Web系统,如门户网站或电商网站。另外,HAProxy也适用于MySQL数据库(读操作)的负载均衡。四层负载均衡与七层负载均衡的区别在OSI七层模型中,从下往上进行分析,传输层属于第四层,应用层属于第七层。四层负载均衡是基于IP地址和端口号来分发流量的,依赖于分析IP层(第三层)和传输层(第四层)的流量。常见的基于传输层的负载均衡器有LVS、F5等。七层负载均衡是基于Web请求、URL等应用信息实现负载均衡的。以常见的TCP为例,当采用四层负载均衡进行转发时,负载均衡设备在接收到第一个来自客户端的SYN请求时,会基于上方介绍四层负载均衡和七层负载均衡的原理选择一个最佳的服务器,并修改报文中的目标IP地址(将其改为后端服务器IP地址),并将请求转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器之间直接建立的,负载均衡设备仅起到路由器的转发作用。在使用七层负载均衡代理时,如果负载均衡设备需要根据应用层内容选择服务器,则必须先使用代理建立服务器和客户端之间的连接(进行TCP三次握手)。这样,负载均衡设备才能接收客户端发送的真实应用层内容报文,并根据报文中的特定字段及负载均衡设备设置的服务器选择方式,确定最终选择的内部服务器。在这种情况下,负载均衡设备更类似于代理服务器。负载均衡会分别与前端的客户端及后端的服务器建立TCP连接。因此,从技术原理上看,七层负载均衡明显对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。HAProxy与LVS的异同在Linux系统中,LVS和HAProxy都为集群提供负载均衡功能,是非常优秀的负载均衡软件。它们具有独特的优势,但也存在着较大差异。LVS的特点如下。(1)四层负载均衡软件。(2)并发能力非常强,并发数量可达几十万,远远超过HAProxy。(3)支持TCP、UDP协议等的负载调度。(4)在DR(DirectRouting,直接路由)模式下,数据返回客户端不经过LVS,效率更高。(5)经过改良后的FULLNAT模式是进入和返回分离的集群模式,其并发数量可达百万。(6)仅适用于大并发场景下的七层负载(负责HTTP处理),在此之前需要进行首次四层负载调度(负责TCP调度)。HAProxy的特点如下。(1)四层、七层负载均衡软件。(2)不仅支持TCP等四层负载,还支持HTTP等七层负载。(3)并发性能不如LVS。(4)数据经过负载均衡器来回传输,因此效率略有降低。(5)对于流量并发不大的网站,使用HAProxy就够了,无须使用LVS。+HAProxy
基础配置与应用实例02快速安装HAProxy集群软件快速安装HAProxy集群软件包括以下几个步骤。(1)从HAProxy官网下载HAProxy源码包。(2)使用源码编译方式安装源码包,相应命令如下。(3)启动HAProxy。HAProxy基础配置文件详解(1)global部分。此部分用于设置全局配置参数,属于进程级配置,通常与操作系统配置相关。(2)defaults部分。此部分是默认参数配置部分。在此部分设置的参数值,会默认自动引用到后面的frontend、backend和listen部分中。因此,如果某些参数属于公共配置,那么只需在defaults部分添加一次即可。如果在frontend、backend和listen部分中也配置了与defaults部分一样的参数,那么这些参数将会覆盖defaults部分参数对应的值。(3)frontend部分。此部分用于设置接收用户请求的前端虚拟节点。frontend和backend是在HAProxy1.3版本之后引入组件的。通过引入这些组件,在很大程度上简化了HAProxy配置文件的复杂性。frontend可以根据ACL规则直接指定要使用的后端。(4)backend部分。此部分用于设置集群的后端服务集群,即通过添加一组真实服务器来处理前端用户的请求。添加的真实服务器类似于LVS中的realserver节点。(5)listen部分。此部分是frontend部分和backend部分的结合。在HAProxy1.3版本之前,HAProxy的所有配置选项都在这个部分中进行设置。为了保持兼容性,HAProxy新的版本仍然保留了listen组件的配置方式。目前,在HAProxy中,用户可以任选其中一种配置方式。HAProxy的日志配置策略01修改HAProxy配置,配置代码案例如下HAProxy的日志配置策略02将rsyslog.conf配置修改为如下内容添加如下内容:03启动服务指令04查看生成的日志指令通过HAProxy的ACL规则实现智能负载均衡用于自定义ACL的名称,必填项,只能包含大小写字母、数字、“-”、“_”、“.”和“:”。01aclname02criterion用于设置需要检查的数据或内容,如USERAGENT首部的值。criterion常用的参数如下。①srcip:源IP地址。②src_port:integer源端口。③dstip:目标IP地址。④dst_port:integer目标端口。通过HAProxy的ACL规则实现智能负载均衡用于定义控制条件,如是否区分字符大小写等。flags的可选参数如下。①-i:不区分字符大小写。②-m:启用特定的匹配方式,一般不常使用。③-n:禁止DNS反向解析。④-u:不允许aclname重复。在默认情况下,允许使用重名的名称,当两个ACL的名称相同时,将采用“或”逻辑运算。03flags04operator用于判断匹配条件,与<criterion>进行比较的条件。①匹配整数值时的比较条件:eq、ge
、gt
、le、lt。②匹配字符串时的比较条件:str、beg、end、sub、reg。通过HAProxy的ACL规则实现智能负载均衡访问控制的具体内容或值。value的类型如下。①boolean:布尔值。②integerorintegerrange:整数或整数范围。③IPaddress/network:网络地址。④string(exact,substring,suffix,prefix,subdir,domain):字符串。⑤regularexpression:正则表达式。⑥hexblock:十六进制块。05value+基于虚拟主机的HAProxy
负载均衡系统配置实例03通过HAProxy的ACL规则配置虚拟主机在七层ACL规则匹配中,常用的参数是path。该参数用于进行URL规则匹配。path参数包括以下参数。(1)path:精确匹配。(2)path_beg:匹配字符串开头的所有内容。(3)path_dir:子路径匹配。(4)path_dom:检查路径中是否包含指定的路径段。(5)path_end:匹配字符串结尾的所有内容。(6)path_len:字符串长度匹配。(7)path_reg:正则表达式匹配。(8)path_sub:域名子串匹配。通过HAProxy的ACL规则配置虚拟主机下面举一个使用path参数的具体例子。选择两台主机,安装NGINX,并使用NGINX虚拟出4台主机,其中2台主机用于处理图片请求,另外2台主机用于处理文本请求。通过使用HAProxy负载均衡来实现ACL控制机制。ACL控制机制如图12-1所示。通过HAProxy的ACL规则配置虚拟主机在02主机上添加监听8080端口的虚拟主机(已安装NGINX),并在NGINX的主配置中添加如下信息:测试HAProxy以实现虚拟主机和负载均衡功能本实例主要实现的功能如下。当用户访问www.**.com或**.com时,HAProxy会将网站请求转发至电商服务器集群;当用户访问bbs.**.com时,HAProxy会将网站请求转发至论坛集群,实现论坛负载均衡;当用户访问blog.**.com时,HAProxy会将网站请求转发至博客服务器集群,实现博客集群的负载均衡。除了上述3种请求,HAProxy会将其他网站请求转发至默认的服务器集群。以下是配置方式。测试HAProxy的故障转移功能假设将server_www群中的一台后端服务器2的httpd服务停止,那么当通过www.**.com或**.com域名访问网站时,这个失效的节点将不会被访问到。因为一旦httpd服务停止,HAProxy将立即通过httpchk方式检测到此节点无法提供数据访问,从而屏蔽此节点对外提供服务的功能,实现故障转移。通过类似的方法可以测试其他节点的应用。使用HAProxy的Web监控平台虽然HAProxy实现了服务的故障转移功能,但是在主机或服务出现故障时,它并不能发送通知来告知运维人员。对及时性要求高的业务系统来说,这是非常不方便的。不过,HAProxy似乎也考虑到了这一点。在新的版本中,HAProxy推出了一个基于Web的监控页面。用户通过这个页面可以查看集群系统中所有后端服务器的运行状态。当后端服务或服务出现故障时,监控页面会以不同的颜色显示故障信息。这在很大程度上解决了后端服务器故障报警的问题。运维人员可通过监控这个页面第一时间发现节点故障,进而修复故障。HAProxy监控页面如图12-4所示。在这个监控页面中,详细记录了HAProxy中配置的frontend、backend等信息。在“Backend”栏中,包含各台后端真实服务器的运行状态。在正常情况下,所有后端服务器都显示为浅绿色;当某台服务器出现故障时,将显示为深橙色。在这个监控页面中,还可以执行关闭自动刷新、隐藏故障状态的节点、手动刷新、导出数据为CSV文件等操作。在新版的HAProxy中,增加了对backend后端节点的管理功能,如用户可以通过在Web页面下执行disable、enable、softstop、softstart等操作来管理后端节点。使用HAProxy的Web监控平台+通过HAProxy+Keepalived实现Web服务器负载均衡的实训案例04安装和配置HAProxy服务器及Keepalived在使用HAProxy构建集群时,如后端代理两个HTTP服务,如果HAProxy宕机,后端的HTTP服务仍然可以正常运行,但网站会陷入瘫痪状态,这会导致单点故障。这时,Keepalived就登场了。Keepalived基于VRRP,在两台主机之间生成一个VIP(也被称为漂移IP或浮动IP地址)。VIP由主服务器承担。一旦主服务器宕机,备份服务器就会抢占VIP,继续工作。这样可以有效地解决群集中的单点故障问题。安装和配置HAProxy服务器及Keepalived要求如下。3台主机:HA01、HA02和HA03。这3台主机处于同一网段。关闭这3台主机的防火墙服务firewalld,并禁止开机自启动,以避免因网络连接中断而导致VIP漂移失败。关闭这3台主机的网络管理服务NetworkManager,否则会出现问题。IP地址分配如下。HA01:1。HA02:2。HA03:3。VIP:0。01搭建虚拟机环境安装和配置HAProxy服务器及Keepalived使用yum源方式安装HAProxy,这是因为离线安装会遇到各种依赖(如gcc、openssl/openssl-dev、zlib
、perl等依赖)缺失错误。安装命令为:
yuminstall-yhaproxy
配置文件目录及结构:
/etc/haproxy/ L──haproxy.cfg
02安装和配置HAProxy安装和配置HAProxy服务器及Keepalived02安装和配置HAProxy
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年学校少先队知识竞赛应知应会题库及答案
- 2026年锯片级金刚石行业创新案例分析报告
- 2026年蒙皮铝合金板行业创新趋势与展望报告
- 2026年稀有金属冶金行业技术创新动态报告
- 2026年高纯砷与氧化砷行业创新趋势报告:市场动态与技术发展
- 2026北师大三下第四单元新课标课件
- 航空旅客服务满意度提升策略研究手册
- 数据中心的运维与故障排除手册
- 企业招聘系统升级与智能化解决方案
- 用户行为分析绩效表
- 《婴幼儿饮食与营养》课件-2-2-1 学习活动1 7-12月龄婴儿喂养
- E1000变频器产品手册
- 监理公司与监理部、监理部与监理人员签订安全生产责任书
- T-ZRIA 002-2024 工业巡检四足机器人通.用技术条件
- 《眼外伤的护理》课件
- 国家职业技术技能标准 6-29-03-03 电梯安装维修工 人社厅发2018145号
- 23J916-1 住宅排气道(一)
- 高处作业操作证考试能力作业例题
- DL∕T 2447-2021 水电站防水淹厂房安全检查技术规程
- (正式版)JB∕T 7052-2024 六氟化硫高压电气设备用橡胶密封件 技术规范
- 水工隧洞软件手册水利版
评论
0/150
提交评论