【ch12】千万级高并发负载均衡软件-HAProxy_第1页
【ch12】千万级高并发负载均衡软件-HAProxy_第2页
【ch12】千万级高并发负载均衡软件-HAProxy_第3页
【ch12】千万级高并发负载均衡软件-HAProxy_第4页
【ch12】千万级高并发负载均衡软件-HAProxy_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Linux服务器安全管理高级运维》课程教案课题:项目12千万级高并发负载均衡软件——HAProxy教学目的:1.了解HAProxy2.了解HAProxy集群软件的工作原理3.了解HAProxy与LVS的区别4.掌握HAProxy的基础配置方法5.掌握基于虚拟主机的HAProxy负载均衡虚拟系统的配置方法6.掌握使用HAProxy+Keepalived实现Web服务器负载均衡的方法课型:新授课课时:本章安排6个课时。教学重点:重点:掌握HAProxy配置文件结构(global/defaults/frontend/backend/listen)及各部分核心参数的含义与配置方法。掌握HAProxy的ACL规则语法与配置方法,以及基于ACL实现虚拟主机和智能负载均衡的配置实例。教学难点:难点:HAProxy中frontend与backend分离的配置逻辑,以及ACL规则中多种匹配条件(hdr_reg/hdr_dom/hdr_beg/path_beg/path_end等)与use_backend/block/http-request等控制语句的协同工作机制。HAProxy+Keepalived集成方案中,Keepalived通过vrrp_script调用socat检测HAProxy服务状态、结合nopreempt非抢占模式实现VIP平滑漂移的原理与配置方法。教学过程:教学形式:讲授与实训结合,教学组织采用课堂整体讲授、命令行演示操作与分组讨论相结合的方式。教学媒体:采用“课堂整体讲授+投屏命令行演示+系统运行测试”的方式进行。通过整体讲授建立HAProxy千万级高并发负载均衡软件的完整知识框架,涵盖HAProxy简介与特性、四层与七层负载均衡对比、与LVS异同、源码编译安装、配置文件结构详解、ACL规则与智能负载均衡、虚拟主机配置、HAProxy监控页面、HAProxy+Keepalived高可用集成九大模块;借助投屏实时执行命令,分步演示源码编译安装(makeTARGET=linux31/makeinstallPREFIX)、haproxy.cfg配置文件编写(global/defaults/frontend/backend/listen五段式结构)、frontend中bind监听与default_backend设置、backend中balance算法(roundrobin/source/leastconn)与server参数(weight/check/inter/rise/fall)、optionhttpchk健康检查配置、listen监控页面配置(statsuri/statsauth)、ACL规则配置(hdr_reg/hdr_dom匹配域名、path_beg/path_end匹配URL路径、use_backend条件转发)、HAProxy日志配置(rsysloglocal2设备)、Keepalived+HAProxy集成中vrrp_script调用check_alive.sh(socat检测statssocket)、nopreempt非抢占模式配置、VIP漂移验证等关键操作;同时设计四层负载均衡与七层负载均衡对比、LVS与HAProxy功能对比、roundrobin与source与leastconn算法效果对比、HAProxy独立部署与Keepalived+HAProxy高可用部署对比等多组对比案例,引导学生通过对比分析掌握HAProxy的核心优势与适用场景。板书设计:本课标题千万级高并发负载均衡软件——HAProxy课次3授课方式理论课□讨论课□习题课□其他□课时安排6学分共2分授课对象普通高等院校学生任课教师教材及参考资料1.《Linux服务器安全管理高级运维》;电子工业出版社。2.本教材配套视频教程及学习检查等资源。3.与本课程相关的其他资源。教学基本内容教学方法及教学手段项目情境HAProxy是一款开源、高性能、基于传输层(TCP)和应用层(HTTP)的负载均衡软件。使用HAProxy可以快速、可靠地提供基于TCP和HTTP应用的负载均衡解决方案。使用类似于HAProxyEnterprise这样强大的负载均衡器,用户能够通过定义额外的功能来验证传入的流量,并快速做出决策。例如,控制其他用户对各种端点的访问,将非HTTPS流量重定向到HTTPS,并检测和阻止不法行为;定义添加HTTP标头、更改URL或重定向用户的条件。参考以下形式:1.衔接导入2.悬念导入3.情景导入4.激疑导入5.演示导入6.实例导入7.其他形式本章基本知识汇总任务1HAProxy12.1.1HAProxy简介HAProxy:开源、高性能、基于传输层(TCP)和应用层(HTTP)的负载均衡软件。性能指标:单台每单位时间处理20000个请求,最高可同时维护40000~50000个并发连接,数据处理能力高达10Gbit/s。支持超过8种负载均衡算法,支持会话保持、虚拟主机功能、连接拒绝、全透明代理、ACL支持(功能强大)、服务器状态监控页面。适用场景:特别大并发量、需要持久连接或七层处理机制的Web系统(门户网站、电商网站),也适用于MySQL数据库(读操作)负载均衡。12.1.2四层负载均衡与七层负载均衡的区别四层负载均衡(基于IP地址+端口号):LVS、F5。负载均衡设备收到客户端SYN请求后选择最佳服务器,修改报文目标IP转发,TCP三次握手是客户端和服务器直接建立,负载均衡设备仅起路由器转发作用。七层负载均衡(基于Web请求/URL等应用信息):HAProxy。负载均衡设备需先与客户端建立TCP连接(代理模式),接收应用层内容报文后根据特定字段选择后端服务器,再与后端服务器建立TCP连接。对负载均衡设备要求更高,处理能力低于四层模式。12.1.3HAProxy与LVS的异同LVS特点:四层负载均衡软件;并发能力非常强(可达几十万,FULLNAT模式百万);支持TCP/UDP调度;DR模式数据返回不经过LVS效率更高;适用于大并发场景下的七层负载(需先经过四层调度)。HAProxy特点:四层+七层负载均衡软件;支持TCP四层负载和HTTP七层负载;并发性能不如LVS;数据经过负载均衡器来回传输效率略有降低;流量并发不大的场景足够使用。结论:各有优缺点,根据实际应用环境选择,无绝对优劣。任务2HAProxy基础配置与应用实例12.2.1快速安装HAProxy集群软件源码编译安装:tarzxvfhaproxy-1.8.13.tar.gz→cdhaproxy-1.8.13→makeTARGET=linux31(CentOS7.x,内核3.10+;CentOS6.x用linux26)→makeinstallPREFIX=/usr/local/haproxy→mkdir/usr/local/haproxy/conf→cpexamples/option-http_proxy.cfg/usr/local/haproxy/conf/haproxy.cfg→启动:/usr/local/haproxy/sbin/haproxy-f/usr/local/haproxy/conf/haproxy.cfg。12.2.2HAProxy基础配置文件详解配置文件5大部分:global(全局配置,进程级)、defaults(默认参数,被frontend/backend/listen继承)、frontend(前端虚拟节点,接收用户请求)、backend(后端服务集群,真实服务器组)、listen(frontend+backend结合,1.3版本之前的方式,新版仍兼容)。global参数:log(日志配置,设备local0级别info)、maxconn(最大并发连接数,类似ulimit-n)、user/group(运行用户/组)、daemon(后台运行)、nbproc(进程数,小于CPU核数)、pidfile(PID文件路径)。defaults参数:mode(tcp/http/health,默认tcp)、retries(失败重试次数)、timeoutconnect/client/server/check(连接/客户端/服务器/检测超时)。frontend参数:bind(监听套接字,*:80)、optionhttplog(启用HTTP请求日志)、optionforwardfor(添加X-Forwarded-For记录客户端真实IP)、optionhttpclose(主动关闭TCP连接)、logglobal(引用全局日志)、default_backend(默认后端服务器池)。backend参数:optionredispatch(cookie环境中强制定向到健康服务器)、optionabortonclose(高负载时结束长连接)、balance(负载均衡算法:roundrobin/static-rr/source/leastconn/uri/uri_param/hdr)、cookie(向cookie插入SERVERID)、optionhttpchk(HTTP健康检查,格式GET/index.php)、server(后端服务器定义:名称IP:端口cookie值weight权重checkinter间隔rise恢复次数fall故障次数)。listen监控页面:listenadmin_stats{bind:9188;statsrefresh30s;statsuri/haproxy-status;statsrealm"welcomeloginHaproxy";statsauthadmin:admin123;statshide-version;statsadminifTRUE;}。12.2.3HAProxy的日志配置策略HAProxy配置:global中loglocal2info;defaults中optionhttplog+logglobal。启动:systemctlrestarthaproxyrsyslog→tail/var/log/haproxy.log查看日志。12.2.4通过HAProxy的ACL规则实现智能负载均衡ACL格式:acl<aclname><criterion>[flags][operator]<value>。criterion常用参数:srcip(源IP)、src_port(源端口)、dstip(目标IP)、dst_port(目标端口)。flags参数:-i(不区分大小写)、-m(特定匹配方式)、-n(禁止DNS反向解析)、-u(不允许重名)。operator比较条件:整数(eq/ge/gt/le/lt)、字符串(str/beg/end/sub/reg)。控制语句:use_backend<backend>{if|unless}<condition>(符合条件使用指定backend)、block{if|unless}(阻塞应用层请求)、http-request{allow|deny}(应用层访问控制)、tcp-requestconnection{accept|reject}(传输层访问控制)。示例1:ACL限制stats页面仅特定IP访问(aclstasrc;blockif!sta)。示例2:http-requestdenyunlesssta实现白名单控制。任务3基于虚拟主机的HAProxy负载均衡系统配置实例12.3.1通过HAProxy的ACL规则配置虚拟主机path参数系列:path(精确匹配)、path_beg(匹配开头)、path_dir(子路径)、path_end(匹配结尾)、path_len(长度匹配)、path_reg(正则表达式)、path_sub(子串匹配)。实例架构:HAProxy根据请求资源类型分发——图片请求(.png)转发至imagesv后端组(两台NGINX,80/8080端口);文本请求(.txt)转发至txtsv后端组(两台NGINX,80/8080端口);其他请求转发至默认app后端组。配置要点:frontend中定义aclimagepath_end.png和acltxtpath_end.txt;use_backendimagesvifimage;use_backendtxtsviftxt;default_backendapp。backend中分别定义对应服务器组及balance算法。12.3.2测试HAProxy以实现虚拟主机和负载均衡功能虚拟主机场景:或.com→电商服务器集群;→论坛服务器集群(负载均衡);→博客服务器集群(负载均衡);其他请求→默认服务器集群。ACL规则:aclhost_wwwhdr_reg(host)-i^(|.com);aclhost_bbshdr_dom(host)-ibbs.**.com;aclhost_bloghdr_beg(host)-iblog.。负载均衡策略:server_www和server_bbs使用balancesource(基于IP哈希);server_blog和server_default使用balanceroundrobin(轮询)。后端标记验证:各后端服务器设置不同index.html内容,访问不同域名验证是否转发到对应集群。启动命令:haproxy-f配置文件;平滑重启:haproxy-fcfg-stcathaproxy.pid。12.3.3测试HAProxy的故障转移功能停止server_www群中某台后端服务器的httpd服务→HAProxy通过httpchk检测到节点无法提供数据访问→自动屏蔽该节点对外服务→实现故障转移。12.3.4使用HAProxy的Web监控平台访问http://IP:端口/haproxy-status(需输入认证用户名密码)。监控页面显示frontend/backend信息,后端服务器正常显示浅绿色,故障显示深橙色。支持关闭自动刷新、隐藏故障节点、手动刷新、导出CSV、disable/enable/softstop/softstart管理后端节点。任务4通过HAProxy+Keepalived实现Web服务器负载均衡的实训案例12.4.1安装和配置HAProxy服务器及Keepalived环境:HA01(1,priority3)、HA02(2,priority2)、HA03(3,priority1),VIP0。关闭firewalld和NetworkManager。HAProxy安装:yuminstall-yhaproxy(或源码编译);配置文件/etc/haproxy/haproxy.cfg(frontendmain*:5000+backendstatic+backendapp)。Keepalived安装:yuminstall-ykeepalivedsocat(或源码编译:gcc/openssl-devel→tar-zxvf→./config→make&&makeinstall)。check_alive.sh脚本:echo"showinfo"|socatunix-connect:/var/lib/haproxy/statsstdio>/dev/null(通过statssocket检测HAProxy状态,成功返回0,失败返回1)。keepalived.conf配置:vrrp_scriptcheck_alive{script"./check_alive.sh";interval2;fall2;rise10;};vrrp_instance中stateBACKUP(三台均为BACKUP)、nopreempt(非抢占模式)、interfaceens33、virtual_router_id50、priority3/2/1、virtual_ipaddress0devens33、authenticationPASS、track_script{check_alive}。常见命令:systemctlstopNetworkManager;systemctlstartkeepalived;systemctlstatuskeepalived-l。12.4.2测试HAProxy+Keepalived是否正常运行启动顺序:HA03(priority1)→

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论