云计算集群技术与应用- 教案-教学设计 第07章 HAProxy七层负载集群_第1页
云计算集群技术与应用- 教案-教学设计 第07章 HAProxy七层负载集群_第2页
云计算集群技术与应用- 教案-教学设计 第07章 HAProxy七层负载集群_第3页
云计算集群技术与应用- 教案-教学设计 第07章 HAProxy七层负载集群_第4页
云计算集群技术与应用- 教案-教学设计 第07章 HAProxy七层负载集群_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

云计算集群技术与应用教学设计课程名称:云计算集群技术与应用__授课年级:_______________________授课学期:_______________________教师姓名:_______________________年月日课程名称第7章HAProxy七层负载集群计划学时6学时内容分析本章主要介绍HAProxy七层负载集群的相关知识,包含HAProxy简介、HAProxy配置文件解析、HAProxy七层负载集群实战案例、HAProxy日志配置策略。教学目标与教学要求【知识目标】理解HAProxy概念。理解HAProxy的特点。理解负载均衡的性能对比。了解HAProxy配置文件解析。理解HAProxy日志配置策略。【技能目标】掌握部署HAProxy七层负载集群。掌握部署HAProxy日志配置策略。【思政育人目标】培养学生团结协作、合作共赢的精神。引导学生不断提高个人修养和思想道德水平,养成良好的职业素养,为成为一个合格的运维工程师而努力。使学生认识到科技创新能力在新时代下对于国家、企业和人民的深远意义,从而使学生树立大国担当与科技使命。教学重点HAProxy的特点、部署HAProxy七层负载集群教学难点HAProxy配置文件解析教学方式课堂讲解配合ppt演示3学时,上机演练3学时教学过程第一学时(HAProxy简介)一、提出需求,导入学习任务(1)思考HAProxy七层负载集群的学习应该从何入手。第6章提到的四层负载均衡技术主要是根据IP+端口的方式进行负载,对所有的请求一视同仁,按指定的算法进行调度。为了满足业务发展智能化的需求,现阶段的网站在OSI参考模型的基础上创新实现了七层负载均衡,对用户的请求进行智能分类,再交由对应的集群进行处理,提高效率的同时实现了系统的“人性化”。本章介绍七层负载均衡技术HAProxy,以及该技术在实际中的应用。(2)明确学习方向。理解HAProxy概念。理解HAProxy的特点。理解负载均衡的性能对比。二、知识讲解(一)HAProxy概念1.概念HAProxy是一款由C语言开发,基于TCP(第四层)和HTTP(第七层)应用的负载均衡软件,与LVS一样,是一个专业的高性能负载均衡,并且是免费、快速并且可靠的一种解决高负载的方案。2.HAProxy有3种方式保持客户端和服务端Session的亲缘性。用户IP识别Cookie识别Session识别(二)HAProxy的特点1.HAProxy的优势免费开源,负载均衡功能较为丰富,支持TCP/HTTP两种协议。支持8种左右的负载均衡算法。支持基于事件驱动的链接处理模式与单进程处理模式。拥有功能丰富的监控页面。具备功能强大的ACL(访问控制列表)支持。2.HAProxy七层负载均衡的原理架构。3.HAProxy作为七层负载均衡的应用场景由于HAProxy七层负载是在应用层,那么只能与Tomcat、PHP等Web服务器做负载均衡。HAProxy七层负载支持虚拟主机功能,即可以通过请求域名对后端服务器就行访问。HAProxy七层负载可以根据URL进行请求转发。HAProxy七层负载可以根据浏览器类型进行请求转发。(三)负载均衡的性能对比负载均衡的选用与企业规模息息相关,大型网站或并发大的业务,优先考虑LVS;中小型的Web业务,优先选用Nginx和HAProxy;云端上的业务可考虑选用SLB负载均衡。不同负载均衡支持的并发级别:负载均衡类型支持并发数Tomcat1KApache3K~5KIIS0.5W~1W七层(Nginx、HAProxy、SLB)2W~5W四层(Nginx、HAProxy)10W~50WLVS-NAT模式50W~100WLVS-DR模式100W~400W硬件负载均衡(F5、Netscaler)400W~800W三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第7章课后作业。第二学时(HAProxy配置文件解析)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。理解HAProxy配置文件解析。二、知识讲解HAProxy的默认基本配置包含4个部分,分别为global、defaults、frontend和backend,并且每个部分的配置指令需要缩进。(一)global该部分位于配置文件的顶部,表示全局配置,用于设定全局配置参数,一般与操作系统配置、进程管理、安全相关,属于进程级的配置。global部分默认的配置代码如下所示。globalloglocal2chroot/var/lib/haproxypidfile/var/run/haproxy.pidmaxconn4000userhaproxygrouphaproxydaemon(二)defaults该部分表示默认配置,用于为后续的配置部分设置公用的默认值。换句话说,此处的参数值,将会自动引用到后续的frontent、backend以及listen部分中。defaults部分默认的配置代码如下所示。defaultsmodehttplogglobaloptionhttplogoptiondontlognulloptionhttp-server-closeoptionforwardforexcept/8optionredispatchretries3timeouthttp-request10stimeoutqueue1mtimeoutconnect10stimeoutclient1mtimeoutserver1mtimeouthttp-keep-alive10stimeoutcheck10smaxconn3000(三)frontend1.定义及用法该部分表示前端部分,用于设置客户端可以连接的IP地址和端口。frontend部分可以依据ACL规则指定后端backend。frontend部分默认的配置代码如下所示。frontendmain*:5000aclurl_staticpath_beg-i/static/images/javascript/stylesheetsaclurl_staticpath_end-i.jpg.gif.png.css.jsuse_backendstaticifurl_staticdefault_backendapp2.ACL规则ACL规则常在frontend部分中被使用,帮助HAProxy实现了两种主要的功能,如下所示。①通过使用ACL规则可检查客户端的请求是否合法,若符合ACL规则,则放行,否则直接中断请求。②符合ACL规则的请求将被转发至后端真实服务器,实现基于ACL规则的负载均衡。ACL规则的使用格式如下所示。acl自定义的ACL名称acl方法-i[匹配的路径或文件](四)backend该部分表示后端部分,用于配置后端真实服务器集群,以响应前端用户请求。一个backend部分可添加一个或多个真实服务器。backend部分默认的配置代码如下所示。backendstaticbalanceroundrobinserverstatic:4331checkbackendappbalanceroundrobinserverapp1:5001checkserverapp2:5002checkserverapp3:5003checkserverapp4:5004check(五)listen除此之外,还有一个配置部分—listen部分,表示监听部分,结合了前端和后端功能。在目前的HAProxy中,两种方式任选其一即可。listen部分的配置代码如下所示。listenstatusbind:1080modehttplogglobalstatsrefresh30sstatsuri/admin?statsstatsrealmPrivatelandsstatsauthadmin:passwordstatshide-version三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第7章课后作业。第三学时(HAProxy七层负载集群实战案例、HAProxy日志配置策略)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。掌握部署HAProxy七层负载集群。掌握并理解HAProxy日志配置策略二、知识讲解(一)环境准备准备3台VM虚拟机(或者物理服务器),1台作为HAProxy负载均衡器(haproxy),2台作为Web集群。服务器角色IP地址服务配置haproxy32HAproxy1核1Gweb130Apache1核1Gweb231Apache1核1Gclient40无1核1G(二)拓扑结构本节HAProxy负载均衡实验拓扑结构。若以真机作为客户端,模拟对网站进行访问。真机发出的请求首先会经过HAproxy进行判断,判断之后再确定将其移交给web1处理还是web2处理。(三)搭建部署1.部署web集群分别为提供网站服务的服务器web1及web2创建测试页面,以便后续观察HAProxy的调度结果。//web1[root@web1~]#yum-yinstallhttpd[root@web1~]#systemctlstarthttpd[root@web1~]#systemctlenablehttpd[root@web1~]#echoweb1>/var/www/html/index.html//web2[root@web2~]#yum-yinstallhttpd[root@web2~]#systemctlstarthttpd[root@web2~]#systemctlenablehttpd[root@web2~]#echoweb2>/var/www/html/index.html2.部署HAProxy负载均衡首先在服务器上安装EPEL源。使用Yum的方式获取HAProxy。[root@haproxy~]#yum-yinstallhaproxy安装HAProxy后,编辑其配置文件/etc/haproxy/haproxy.cfg,修改部分参数。修改完成后,配置文件的主要内容:global#全局配置 loglocal3info#日志配置 maxconn4096#最大连接限制(优先级低)uidnobodygidnobody daemon nbproc1 #处理HAProxy进程的数量defaults log global mode http maxconn2048 retries 3 option redispatch stats uri/haproxy #设计统计页面的URI为/haproxy statsauthqianfeng:123 #设置统计页面认证的用户与密码# statshide-version #隐藏统计页面上的HAProxy版本信息 contimeout 5000 #重传计时器 clitimeout 50000 #向后长连接 srvtimeout 50000 #向前长连接frontendhttp-in bind:80 modehttp #定义为HTTP模式 logglobal #继承global中log的定义 optionhttplog #启用日志记录HTTP请求 optionhttpclose #每次请求完毕后主动关闭http通道,HAproxy不支持keep-alive模式aclhtmlurl_reg-i\.html$use_backendhtml-serverifhtmldefault_backendhtml-serverbackendhtml-server modehttp balanceroundrobin optionhttpchkGET/index.html cookieSERVERIDinsertindirectnocache serverhtml-Aweb1:80weight1cookie3checkinter2000rise2fall5 serverhtml-Bweb2:80weight1cookie4checkinter2000rise2fall5配置完成后启动HAProxy。[root@haproxy~]#systemctlstarthaproxy3.客户端测试在之前准备用作客户端的服务器上安装网页测试工具Elinks,再进行访问。[root@qfedu~]#yum-yinstallelinks[root@qfedu~]#elinks--dump32web1[root@qfedu~]#elinks--dump32web2[root@qfedu~]#elinks--dump32web1[root@qfedu~]#elinks--dump32web2使用Windows浏览器进行访问。刷新页面只能看到同一个页面,这是因为Windows浏览器自带缓存功能。4.HAProxy监控平台至此,HAProxy已经实现了服务的故障转移功能,但HAProxy的功能并不止于此。HAProxy拥有一个基于Web的监控平台,这一点对于及时性要求很高的业务来说非常便利,当服务中断或者主机故障后,可及时告知运维人员。在客户端浏览器中输入http://haproxy服务器地址/haproxy即可观察到HAproxy的当前状态,Web监控页面如图。HAProxy的Web监控页面通过不同颜色显示故障信息,通过表格展示每项资源的监控参数,并且可以划分为8个类别:(1)QueueCur:代表当前队列的请求数量。Max:代表当前队列最大的请求数量。Limit:代表队列的限制数量。(2)SessionrateCur:代表每秒会话连接数量。Max:代表每秒会话量最大值。Limit:代表每秒会话量的限制值。(3)SessionsTotal:代表全部会话数量。Curl:代表当前的会话数量。Max:代表最大会话数量。Limit:代表会话连接限制。LbTot:代表选中一台服务器所用的总时间。Last:代表最后一次会话时间。(4)BytesIn:代表网络会话输入字节数总量。Out:代表网络会话输出字节数总量。(5)DeniedReq:代表被拒绝的会话请求数量。Resp:代表拒绝回应的请求数量。(6)ErrorsReq:代表错误的请求数量。Conn:代表错误连接数量。Resp:代表错误响应数量。(7)WarningsRetr:代表重新尝试连接的请求数量。Redis:代表重新发送的请求数量。(8)Serverstatus:代表后端服务器状态,存在有UP和DOWN两种状态。LastChk:代表持续检查后端服务器的时间。Wght:代表服务器权重。Act:代表活动后端服务器数量。Bck:代表后端备份服务器的数量。Down:代表状态为Down的后端服务器数量。Downtime:代表服务器总的Downtime时间。Throttle:代表状态Backup变为Active的服务器数量。(四)HAProxy日志配置策略HAProxy服务默认情况下是没有配置日志的,本书使用的是CentOS7系统,其默认的日志管理工具是rsyslog。rsyslog能够实现UDP日志的接收,日志写入文件,以及日志写入数据库等功能。接下来将讲解HAProxy日志的配置策略。查看系统中是否已经安装rsyslog软件包。[root@haproxy~]#rpm-qarsyslogrsyslog-8.24.0-34.el7.x86_64修改rsyslog的配置文件。[root@haproxy~]#vim/etc/rsyslog.conf#ProvidesUDPsyslogreception$ModLoadimudp$UDPServerRun514local2.*/var/log/haproxy.log修改/etc/sysconfig/rsyslog文件。[root@haproxy~]#vim/etc/sysconfig/rsyslog#Optionsforrsyslogd#Syslogdoptionsaredeprecatedsincersyslogv3.#Ifyouwanttousethem,switchtocompatibilitymode2by"-c2"#Seersyslogd(8)formoredetailsSYSLOGD_OPTIONS="-c4-r-m0"默认情况下,rsyslog服务是开机自启的,修改完配置文件需要重新启动rsyslog。[root@haproxy~]#systemctlrestartrsyslog若要实现将HAProxy的日志写入相应的日志文件中,还需要在HAProxy的配置文件中进行对应的说明,比如7.3节案例中HAProxy的配置文件。global loglocal2info#配置日志记录 maxconn4096uidnobodygidnobody daemon nbproc1 defaults log global #配置日志记录 mode http maxconn2048 retries 3 option redispatch stats uri/haproxy statsauthqianfeng:123 contimeout 5000 clitimeout 50000 srvtimeout 50000 frontendhttp-in bind:80 modehttp logglobal #配置日志记录 optionhttplog optionhttpclose aclhtmlurl_reg-i\.html$use_backendhtml-serverifhtmldefault_backendhtml-serverbackendhtml-server modehttp balanceroundrobin optionhttpchkGET/index.html cookieSERVERIDinsertindirectnocache serverhtml-Aweb1:80weight1cookie3checkinter2000rise2fall5 serverhtml-Bweb2:80weight1cookie4checkinter2000r

温馨提示

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

评论

0/150

提交评论