云计算集群技术及应用全套教学课件_第1页
云计算集群技术及应用全套教学课件_第2页
云计算集群技术及应用全套教学课件_第3页
云计算集群技术及应用全套教学课件_第4页
云计算集群技术及应用全套教学课件_第5页
已阅读5页,还剩703页未读 继续免费阅读

下载本文档

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

文档简介

第1章集群基础知识1.1集群简介1.2

集群的分类1.3

负载均衡1.4服务器健康检查第1章-集群基础知识.pptx第2章-Web服务集群.pptx第3章-数据库集群.pptx第4章-NFS存储集群.pptx第5章-Keepalived高可用集群方案.pptx第6章-LVS4层负载集群.pptx第7章-HAProxy7层负载集群.pptx第8章-大型网站集群架构项目1.pptx第9章-大型网站集群架构项目2.pptx全套可编辑PPT课件熟悉集群的核心概念熟悉集群的分类及常用软件熟悉四层和七层负载均衡的技术原理熟悉负载均衡的主要方式了解服务器健康检测163引言说到集群,讲一个例子帮助读者理解其概念。原先的饭店只有一个厨师,负责洗菜、切菜、备料、炒菜,饭店正常运行,后来客人多了,一个厨师满足不了上菜需求,于是老板又招了厨师,两个厨师可以炒出同样的菜,两个厨师就是集群。随着饭店规模和客流量的增多,还可以继续招厨师,这些厨师就是一个集群。1.1集群简介集群的核心概念集群的特点1.1集群简介1.1.1集群的核心概念单机结构是指所有应用或服务部署到一台服务器上。可想而知,当业务不断扩大,而单机的处理能力有限,这时单机的硬件资源无法满足业务需求。集群(Cluster)是指部署相同应用或服务的一组(多台)服务器组成一个并行或者分布式系统,作为一个整体向用户提供网络资源。组成集群的单个服务器为一个节点(Node),这些节点可以相互通信,协同为用户提供相同的资源,一个节点的宕机并不影响其他节点的运行和用户使用。每个节点就像是单机的“分身术”,其处理能力随之成倍提升。1.1集群简介1.1.1集群的核心概念负载均衡(LoadBalance,LB)是指将负载(工作任务)分摊给到多个服务器上进行执行,如Web服务器、企业核心应用服务器、FTP服务器等,协同处理工作任务。当大量用户请求集群系统时,通过负载均衡器使得每个节点的负载情况比较平均,从而达到集群节点分担流量的作用。高可用(HighAvailability,HA)是指保持服务的高可用性,即保证一个系统不会因一台服务器发生故障或宕机而导致服务停止。如果某个节点服务器故障,负载均衡器则会将请求转移到其他节点上,实现冗余接管,这就是系统的高可用。对于商用网站,这也就要求即使是访问量小的服务或应用,也需要部署两台服务器做集群。1.1集群简介1.1.1集群的核心概念集群结构常常与分布式结构协同合作,相辅相成。前言中讲到,两个厨师一起洗菜、切菜、备料、炒菜,做着同样的工作,构成集群。老板为了使厨师专心炒菜,又招了2名配菜师,负责洗菜、切菜和备料,两名配菜师又构成一个集群,而配菜师与厨师的关系则为分布式结构。由此理解分布式结构是指将同一业务模块分为多个(两个以上)子任务,部署到多个服务器上,即不同的业务模块部署到不同的服务器上。1.1集群简介1.1.1集群的核心概念分布式与集群的区别如下。(1)集群指的是将几台服务器集中在一起,实现同一业务。分布式是指将不同的业务模块部署到在不同的服务器。(2)集群并不一定就是分布式的,而分布式的每一个节点,都可以做集群。集群具有一定组织性,一台服务器宕了,其他的服务器继续提供服务。分布式的每一个节点完成不同的业务,一个节点宕了,这个业务就不可访问了。1.1集群简介1.1.2集群的特点1.高可用性和容错性集群架构中的某台服务器因故障宕机,系统通过进程迁移到其他可用的节点继续提供服务,大大提高了系统的可用性和可靠性,有效地减少业务的损失,极大地满足了互联网企业7*24小时提供服务的要求。1.1集群简介1.1.2集群的特点2.高性能到目前为止,即使是大型计算机,计算能力也是有限的,比如计算高分子材料分析、天气预报、飞行器数字模拟等密集型应用,其计算时间可能会很长。大家所熟悉的百度、淘宝、谷歌等大型网站,一天的访问量达上百亿,也绝不是一台或几台大型机就可以构建的。集群便可以很好地处理这些复杂的业务,将上万台服务器构成高性能集群,在并发或总请求量很高时,集群就显示出超强的运算处理能力。1.1集群简介1.1.2集群的特点3.可扩展性例如,银行处理业务的柜台一般都有多个,如果只设置2个柜台,当客户达到上百人时,那么办理业务的柜台压力增长,满足不了客户的需求。这时就需要多加几个柜台,从而提高处理业务的效率。在集群系统中,当服务负载和压力增长时,只需要将新的服务器加入现有集群架构中,就可以实现系统的扩展和升级。而在用户访问角度,几乎不会感觉到变化。1.1集群简介1.1.2集群的特点4.成本相对较低一台超级计算机的价格在上百美元,而一套较好的集群设备,包括软硬件的开销超过10万美元,相对便宜不少。在获得同样性能的情况下,集群系统具有更高的性价比。5.负载均衡负载均衡可以把工作任务比较均匀的分摊给集群环境下的各个节点,有效地提高数据的吞吐量。1.2集群的分类负载均衡集群高可用集群高性能计算集群1.2集群的分类1.2.1负载均衡集群负载均衡集群是指在使用一组应用程序为大量客户提供服务时,通过若干前端负载均衡器将客户请求分发到后端应用集群服务器的技术,各个节点的访问请求被动态分配,达到整个系统的高可用和高性能。在企业中,负载均衡集群以提高服务的并发处理能力为重点,在系统架构中表现得更为实用、性价比更高。客户访问请求一般包括网络流量负载和应用程序负载。例如,网站初期仅支持100个用户同时在线,网站规模小,浏览量仅个位数,这时单台服务器比多个服务集群要快,用户体验感更好,不会感受到网站的卡顿。1.2集群的分类1.2.1负载均衡集群随着网站规模增大,浏览量人数增多,当并发请求或总请求数量大于单台服务器的负载能力时,用户的体验感随着浏览量的增加直线下降。这时可以增加几台服务器同时运行这个网站,在服务器前搭建一个转发器用来分发用户的请求,使每个服务器接收的请求和负载压力尽可能均匀,这样每个用户的请求都能很快被处理,用户的体验感得到提升。这个用来分发用户请求的转发器便是负载均衡,负载均衡以一种便捷、成本低廉的方式提高了网络处理数据的能力。1.2集群的分类1.2.1负载均衡集群负载均衡集群的架构示意图当客户端的请求发送到服务端时,首先会到达目录服务器,经过目录服务器的分配,这些请求才会传递到真实服务器进行处理。所谓的目录服务器就是负载均衡服务器,专门用于将用户的请求分发到不同的后端服务器,负载均衡服务器本身并不会对请求做任何处理。负载均衡集群的主要作用就是分担访问流量以及保持业务的连续性,实现负载均衡典型的开源软件有LVS、Nginx、HAProxy等。1.2集群的分类1.2.2高可用集群高可用集群是指以尽量减少服务中断时间为目的的集群技术,在任意一个节点失效时,该节点所分配的所有工作任务将会自动分配给其他可用节点,保证集群正常运行并提供服务,保持业务的正常运行。保证集群服务100%时间不中断是不可能的,还要考虑计算机软硬件的容错性。例如重量级高配置的淘宝网,当“双十一”活动开始时,一下涌入大量用户,也会出现订单无法支付的情况,因此只能保证集群服务尽可能的可用,不能保证100%时间可用。1.2集群的分类1.2.2高可用集群互联网中,通常使用网站在线时间/(在线时间+故障处理时间)来衡量服务的可用性。可用性宕机时间99%一年有3天不在线99.9%一年有0.3天不在线99.99%一年有0.03天不在线99.999%一年有0.003天不在线1.2集群的分类1.2.2高可用集群高可用集群主要实现自动侦测(Auto-Detect)故障、自动切换/故障转移(FailOver)和自动恢复(FailBack)。1.2集群的分类1.2.2高可用集群负载均衡高可用的架构示意图设置两台目录服务器,其中一台正常工作,对外提供服务。另一台当作备用,当正常工作的目录服务器宕机,该服务器立刻顶替失效的目录服务器进行工作。高可用集群主要是为了保证服务的高度可用性,常用的开源软件包括Keepalived、Heartbeat等。1.2集群的分类1.2.3高性能计算集群高性能计算集群,又称科学计算集群,是指用于计算海量数据,解决复杂问题的技术。人们平时所说的超级计算机就是高性能计算集群,其内部由十至上万个独立处理器组成,将大任务切割为小任务分别进行处理,拥有极大的数据存储容量和极快的数据处理速度。高性能计算集群主要由大数据工程师进行维护,故在此不做过多介绍。1.3负载均衡负载均衡的分类四层和七层负载均衡的区别负载均衡的主要方式负载均衡的算法1.3负载均衡1.3.1负载均衡的分类负载均衡按软硬件分类,软件有Nginx、LVS、Amoeba、HAProxy等,硬件有ROSE、安瑞科技、F5、Citrix等。软件类的负载均衡是指在服务器相应的操作系统上安装软件来实现负载均衡,配置简单,使用灵活;硬件类的负载均衡是指在服务器和外部网络之间安装的负载均衡设备,整体性能高。1.3负载均衡1.3.1负载均衡的分类OSI七层模型应用层表示层会话层传输层网络层数据链路层物理层①②③④⑤⑥⑦1.3负载均衡1.3.1负载均衡的分类负载均衡器按OSI七层模型可以分为二层、三层、四层、七层。负载均衡OSI七层模型位置技术原理典型代表二层负载均衡数据链路层通过一个虚拟MAC地址接收请求,然后再分配到后端真实的MAC地址F5、LVSDR模式三层负载均衡网络层通过一个虚拟IP地址接收请求,然后再分配到后端真实的IP地址LVSTUNNEL模式(IP隧道)四层负载均衡传输层通过虚拟IP+端口接收请求,然后再转发到后端真实的服务器F5、LVSNAT、HAProxy、Nginx、SLB七层负载均衡应用层通过虚拟的URL、IP或主机名接收请求,然后再转发到后端真实的服务器F5、LVSNAT、HAProxy、Nginx、SLBDNS

一个域名有多个A解析、智能解析万网、DNSPod1.3负载均衡1.3.1负载均衡的分类表中还有除OSI七层模型外的DNS模式,在实际应用中使用DNS做负载均衡是常用的方式。负载均衡器通常被称为四层交换机或七层交换机。四到七层负载均衡就是依据四层或七层信息向后端服务器集群转发流量,起到负载均衡的作用。1.3负载均衡1.3.1负载均衡的分类1.四层负载均衡四层负载均衡是基于IP和端口的负载均衡,即通过发布三层的IP地址(虚拟IP)和四层的端口号,来对流量做负载均衡和分发处理,转发到后端服务器,并且记录该TCP或UDP协议的流量到达的服务器,下次仍由此台服务器处理。基于四层的负载均衡可达到每秒几十万的处理量,效率更高。1.3负载均衡1.3.1负载均衡的分类2.七层负载均衡七层负载均衡是根据用户请求的内容等应用层信息为其分配相对应的后端服务器,在这种模式下可以在同一端口下同时运行多个Web服务器。例如,同一个Web服务器的负载均衡,在根据VIP(虚拟IP)和80端口判断应处理得流量的同时,还能够根据七层的浏览器类别、语言、URL来决定是否进行负载均衡,如果用户的语言为中文,则转发至中文服务器进行处理。四层负载均衡不理解如HTTP、FTP等应用协议,而七层负载均衡能理解应用协议。基于七层的负载均衡需要完成两次TCP连接,第一次是客户端与负载均衡器,第二次是负载均衡器与真实服务器。1.3负载均衡1.3.1负载均衡的分类2.七层负载均衡七层负载均衡,又被称为“内容交换”,主要面向来自客户端的应用层内容,在负载均衡器设定的调度算法的基础上进行流量分发,即按需分发。1.3负载均衡1.3.1负载均衡的分类2.七层负载均衡例如一个网站,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求转发到特定的文字服务器并可以使用压缩技术。当用户访问网站图片时,反向代理将请求发送给图片服务器,当用户访问网站文字类内容时,反向代理便将请求发送给储存文字类内容的服务器。从技术原理的方面讲,这种方式可以对客户端的请求和服务器的响应进行任何意义上的修改,极大地提升了应用系统在网络层的灵活性。很多在后台服务器(例如Nginx、Apache等)上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。1.3负载均衡1.3.1负载均衡的分类2.七层负载均衡负载均衡设备如果要根据真正的应用层请求内容选择服务器,需要先代理最终处理请求的服务器与客户端建立TCP连接(三次握手),才可以接收到客户端发送的包含应用层内容的报文,然后再根据该报文中的特定字段以及负载均衡的调度算法,选择处理请求的服务器。负载均衡设备在这种情况下,类似于一个代理服务器,负载均衡会与客户端、处理请求的服务器分别建立TCP连接。所以从技术原理上来看,七层负载均衡明显对负载均衡设备的要求更高,处理七层请求的速度也必然会低于四层。1.3负载均衡1.3.1负载均衡的分类七层负载均衡的优势。通过对HTTP报头的检查,可以检测出HTTP4xx、5xx和6xx系列的错误信息,之后便可以将请求重新发送到另一台服务器,能够有效避免应用层故障。可以对请求的数据类型(如判断数据包是图像文件、压缩文件或多媒体文件格式等)进行判断,把请求分发给相应的服务器来处理,增加系统性能。能根据连接请求的类型进行流量分发。能够判断来自客户端的请求类型是普通文本、图像等静态文档请求,还是asp、cgi等动态文档请求,把相应的请求转发给相应的服务器来处理,提高系统的性能及安全性。1.3负载均衡1.3.1负载均衡的分类七层负载均衡的劣势。七层负载均衡受到其所支持的协议(例如HTTP协议)限制的同时,也限制了它应用的广泛性,并且检查HTTP报头会占用大量的系统资源,势必会影响到系统的性能,在高并发时,负载均衡设备自身很容易成为网络整体性能的瓶颈。1.3负载均衡1.3.2四层和七层

负载均衡的区别1.技术原理的区别四层负载均衡主要通过客户端请求报文中的目标地址和端口,再根据负载均衡器选择的转方式,决定最终的真实服务器。1.3负载均衡1.3.2四层和七层

负载均衡的区别1.技术原理的区别七层负载均衡主要通过报文中的应用层信息,再根据负载均衡器选择的转发方式,决定最终的真实服务器。1.3负载均衡1.3.2四层和七层

负载均衡的区别2.应用场景的需求四层负载均衡适用于TCP应用,比如基于C/S开发的ERP等系统。四层负载均衡比七层处理效率高,更适用于网络吞吐量和并发量高的集群,可作为多种软件的负载均衡器。七层负载均衡使得整个网络更加“智能化”,功能多,控制灵活,可根据用户访问内容,将访问请求转发到相应服务器,例如访问图片,负载均衡器会转发到图片服务器,极大地提高了应用系统在网络层的灵活性。1.3负载均衡1.3.2四层和七层

负载均衡的区别3.安全性均衡网络中常见的黑客攻击,即黑客控制的众多源客户端,也叫作SYNFlood攻击。黑客会通过虚假IP向一个目标发送SYN攻击,发送大量报文,不断消耗服务器的相关资源,以致于服务器拒绝服务。四层负载均衡不能够拦截SYN攻击,会将攻击转发到后端服务器上,而七层负载均衡可以拦截SYN攻击,不会影响后端服务器。七层负载均衡还可以设定安全策略,以过滤不安全报文,进一步提高系统的安全性。由此可见,七层负载均衡比四层负载均衡安全性更高。1.3负载均衡1.3.3负载均衡的主要方式HTTP重定向DNS负载均衡反向代理负载均衡IP负载均衡数据链路层负载均衡F5硬件负载均衡1.3负载均衡1.3.3负载均衡的主要方式1.HTTP重定向HTTP重定向会根据客户端应用层的报文计算出一个真实的Web服务器IP地址,并将该IP地址写入HTTP重定向响应中返回给客户端,客户端收到重定向响应之后再去访问真实服务器。1.3负载均衡1.3.3负载均衡的主要方式1.HTTP重定向用户访问例如的域名,经DNS域名解析获得的IP地址为00,即HTTP重定向服务器的IP地址。HTTP重定向服务器通过负载均衡算法,向客户端响应重定向至集群中实际服务器的地址03,用户浏览器再向真实地址发出访问请求,完成访问。1.3负载均衡1.3.3负载均衡的主要方式1.HTTP重定向这种工作方式虽然比较简单,但客户端需要发送多次请求才能完成一次成功的访问,所以重定向方式实现的负载均衡性能较差。从另一方面讲,HTTP重定向服务器自身的处理能力可能会成为瓶颈。使用HTTP302响应重定向之后,有可能被搜索引擎判断为SEO作弊,从而降低搜索排名。1.3负载均衡1.3.3负载均衡的主要方式2.DNS方式DNS负责提供域名到IP解析的过程,这时DNS服务器也就充当了负载均衡,很多域名运营商提供的智能DNS以及多线解析都是利用了DNS负载均衡的技术,开源的Bind软件就可提供电信联通多线解析等强大的技术。1.3负载均衡1.3.3负载均衡的主要方式2.DNS方式解析百度的域名[root@qfedu~]#dig

;<<>>DiG9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7<<>>;;globaloptions:+cmd;;Gotanswer:;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:62441;;flags:qrrdra;QUERY:1,ANSWER:2,AUTHORITY:0,ADDITIONAL:1

;;OPTPSEUDOSECTION:;EDNS:version:0,flags:;MBZ:0x0005,udp:4096;;QUESTIONSECTION:;.INA

;;ANSWERSECTION:.5INA51.5INA48

;;Querytime:3msec;;SERVER:#53();;WHEN:五11月2600:28:47EST2021;;MSGSIZErcvd:701.3负载均衡1.3.3负载均衡的主要方式2.DNS方式解析百度的域名百度的域名解析其实是一对多的形式。例如一个域名对应一组web服务器IP地址,域名解析时经过DNS服务器的算法将一个域名请求分配到合适的真实服务器上。1.3负载均衡1.3.3负载均衡的主要方式2.DNS方式DNS服务器写入多条A记录:INA01、INA02、INA03。用户请求域名解析,DNS服务器根据A记录采用负载均衡算法向用户返回真实物理服务器IP地址,用户浏览器重新请求该IP地址。

DNS域名解析常作为第一级负载均衡器。1.3负载均衡1.3.3负载均衡的主要方式2.DNS方式DNS负载均衡的控制权在于域名服务商,网站管理者可能无法做出过多的改善和管理,且不能够按照服务器的处理能力来分配负载。DNS负载均衡采用的是简单的轮询算法,不能区分服务器之间的差异,不能反映服务器当前运行状态,所以实现负载均衡的效果并不是很好。1.3负载均衡1.3.3负载均衡的主要方式DNS实现负载均衡的方式的优缺点如下。优点:将负载均衡的工作交给了DNS,省却了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域名解析,将域名解析成距离用户地理最近的一个服务器地址,加快访问速度,改善性能。缺点:目前的DNS解析是多级解析,每一级DNS都可能对A记录进行缓存,当某一服务器下线后,该服务器对应的DNS记录A可能仍然存在,导致分配到该服务器的用户访问失败。为了使本DNS服务器和其他DNS服务器及时交互,保证DNS数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置得较小,但太小将会使DNS流量大增造成额外的网络问题。1.3负载均衡1.3.3负载均衡的主要方式3.反向代理方式反向代理部署在Web服务器前面,提供负载均衡的功能,同时管理着一组Web服务器,根据负载均衡算法将访问请求转发给不同的Web服务器,处理结果经过反向代理返回给浏览器。1.3负载均衡1.3.3负载均衡的主要方式3.反向代理方式客户端请求的地址是反向代理服务器的地址0,反向代理服务器收到请求后,经过负载均衡算法计算得到一个真实物理地址(Web服务器地址),并将请求转发给真实服务器,真实服务器处理完成后通过反向代理服务器返回给客户端。因为反向代理服务器转发请求是在HTTP协议层面的,所以又叫做应用层负载均衡。1.3负载均衡1.3.3负载均衡的主要方式4.IP负载方式IP负载均衡是在网络层和传输层(IP和端口)通过修改目标地址进行负载均衡。1.3负载均衡1.3.3负载均衡的主要方式4.IP负载方式客户端的请求到达负载均衡服务器时,负载均衡服务器在读取报文之后根据算法得到一台真实服务器地址,然后将用户请求的目标地址修改成该真实服务器地址,由真实服务器处理请求,请求处理完后返回给负载均衡服务器,负载均衡服务器收到响应后将响应报文的目标地址修改为客户端地址后再将数据返回给客户端。1.3负载均衡1.3.3负载均衡的主要方式4.IP负载方式该方法比起反向代理方式响应请求的速度要更快,处理性能更好。由于集群最大相应数据吞吐量受制于负载均衡服务器的网卡带宽,难以满足提供下载服务或视频服务等需要大量数据传输的网站。1.3负载均衡1.3.3负载均衡的主要方式5.链路层负载方式网络中的每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址。数据链路层负载均衡是在数据链路层修改MAC地址进行负载均衡。1.3负载均衡1.3.3负载均衡的主要方式5.链路层负载方式负载均衡服务器的IP和它所管理的web服务集群的虚拟IP一致;负载均衡数据分发过程中不修改访问地址的IP地址,而是修改MAC地址;通过这两点达到不修改数据包的原地址和目标地址就可以进行正常的访问。1.3负载均衡1.3.4负载均衡的算法医院的挂号机为看诊的患者进行排号,便于不同患者的需求尽快得到处理。挂号机内部设有一定的处理机制进行业务窗口的排序及分配,这种用系统的方法描述解决问题的策略机制就叫做算法。不管网站采取哪种模式做负载均衡,都需要设定算法指定调度策略。负载均衡算法主要分为静态和动态两类。静态负载均衡算法以固定的顺序分配任务,不考虑服务器的实时状态,如轮询法、加权轮询法等;动态负载均衡算法以服务器的实时负载状态信息分配任务,如最小连接法、加权最小连接法等。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法轮询法加权轮询法目标地址哈希法源地址哈希法1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法轮询法轮询调度算法(RoundRobinScheduling,RR),调度器采用这种算法时,会将用户请求无差别地按顺序轮流分配到集群中的真实服务器上,不关心每个服务器上实际的连接数和当前系统负载信息。假设现在后端有4台真实服务器,前端负载均衡器收到9个用户请求,暂时将这9个请求依次用1、2、3、4、5、6、7、8、9表示。若负载均衡器采用轮询法进行任务的分配,这9个请求是什么分配结果呢?1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法第一个用户请求将被分配给真实服务器1号机进行处理,第二个用户请求将被分配给真实服务器2号机进行处理,依此类推。当4台服务器分配完毕时,第5个请求又将被分配给1号机进行处理。只要真实服务器的数量固定,每台机器处理的请求序号也是固定的。轮询法1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法加权轮询法加权轮询调度算法(WeightedRoundRobinScheduling,WRR),调度器采用这种算法时,会将用户请求按照真实服务器不同的处理能力进行分配。给配置高、负载低的机器配置更高的权重,让其处理更多的请求;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载。按照权重进行任务的调度,可以保证请求分配的合理性。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法加权轮询法若负载均衡器采用加权轮询法进行任务的分配,首先会在内部生成一个服务器序列。每当收到请求时,就依次从该序列中取出一个服务器用于处理用户请求。比如现在有三台真实服务器A、B、C,它们的处理能力分别为2,1,3,加权轮询算法会生成序列{A,A,B,C,C,C}。这样,每收到6个客户端的请求,服务器会把其中的1个请求转发给后端的B,把其中的2个请求转发给后端的A,把其中的3个请求转发给后端C。收到的第7个请求,重新从该序列的头部开始轮询。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法加权轮询法总的来说,加权轮询算法要生成一个服务器序列,该序列含N个服务器。N是所有真实服务器的权重之和。在这个序列中,将服务器的处理能力以一定的维度进行衡量,每个服务器的能力用数字量化为其权重值。同时在生成的序列中,服务器的分配应该尽可能地均匀。比如序列{A,A,B,C,C,C}中,前2个请求都会分配给服务器A,这是一种不均匀的分配方法,更好的序列应该是:{C,A,B,C,A,C}。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法目标地址哈希法目标地址哈希法(DestinationHashingScheduling,DH)是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。服务器首先将用户请求的目标IP地址作为散列键(HashKey),再从静态分配的散列表找出对应的服务器,如果该服务器是可用的且未超载,就将请求发送到该服务器,否则返回空。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法源地址哈希法源地址哈希法(SourceHashingScheduling,SH)也是一种静态映射算法,通过一个散列(Hash)函数将一个源地址IP地址映射到一台服务器。服务器首先将用户请求的源IP地址(即客户端地址)作为散列键(HashKey),再从静态分配的散列表找出对应的服务器,如果该服务器是可用的且未超载,就将请求发送到该服务器,否则返回空。采用源地址哈希法进行负载均衡,源地址一样的请求都会被分配到同一台服务器进行处理,可以实现会话的粘滞性。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法源地址哈希法假设现在有A、B、C、D四台真实服务器,随机抽取之前处理过的9个请求,以序号1~9表示,查看实际对这9个请求进行处理的服务器。服务器A:1、7服务器B:2、3、4、5服务器C:9服务器D:6、8若该服务器采用的是源地址哈希法进行负载均衡,那么再次收到这9个请求源客户端的请求时,实际处理请求的服务器是怎样分配的呢?1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法采用源地址哈希法进行负载均衡,源地址一样的请求都会被分配到同一台服务器进行处理。但如果某个服务器出现故障,会导致这个服务器上的客户端无法使用,无法保证高可用。当某一用户成为热点用户,将会有巨大的流量涌向这个服务器,导致负载分布不均衡,无法有效利用集群的性能。源地址哈希法1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法—优缺点对比算法优点缺点轮询法简单高效,易于水平扩展,每个服务器任务分配均衡无法保证任务分配的合理性,无法根据服务器承受能力来分配任务加权轮询法可以将不同机器的性能问题纳入考量范围,集群性能最优最大化服务器抗压能力无法精确估量,静态算法导致无法实时动态调整节点权重,只能粗糙优化目标地址哈希法根据用户访问的URL的哈希结果,使每个URL定向到同一个后端服务器上,假如某一个目标服务器不可以,或者负载过高,那么会影响发往该目标服务器的请求无法得到响应。源地址哈希法源地址一样的请求都会被分配到同一台服务器进行处理,可以解决session会话共享的问题,实现会话粘滞1.由于用户的活跃度不同,可能会有大量的活跃用户被哈希到相同的服务器上,造成该服务器特别繁忙,大量的非活跃用户被哈希到相同的服务器上,造成该服务器几乎没有请求,造成请求不均衡;2.一旦某个服务器挂掉,那么哈希到该服务器的所有源请求都会失败,直到服务恢复或者服务器列表中去掉该服务器1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法最小连接数法加权最小连接数法基于局部性的最少链接法带复制的基于局部性最少链接法1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法最小连接法最小连接法(LeastConnectionScheduling,LC),采用这种算法做负载均衡时,调度器会根据每个真实服务器当前的连接情况,动态选取当前连接数最小的服务器来处理当前请求。最小连接法通过真实服务器当前活跃的连接数来判断真实服务器的情况,每当真实服务器有新的连接或断开连接时都需要进行计数,调度器根据各个真实服务器的连接数合理进行任务的分配。在实际应用中,同一集群的真实服务器具有相近的系统性能,对外提供的服务也一致,采用最小连接法可以较好地进行负载均衡。1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法最小连接法假设现在真实服务器组中有A、B、C、D四台服务器,它们当前的连接数分别是2、4、1、2,负载均衡采用的算法是最小连接法。若此时来了一个新的用户请求,按照最小连接法的原则,该请求就会被分配至RS-C进行处理。1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法加权最小连接法加权最小连接法(WeightedLeastConnectionScheduling,WLC)在实现时增加了权重的计算,在LC算法的计算标准上除以权重,计算结果数值小的将接受下次访问请求,是企业最常用的算法也是LVS的默认算法。采用这种算法时,调度器可以自动问询真实服务器的负载情况,并动态调整其权值。1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法基于局部性的最少链接法基于局部性的最少链接法(Locality-BasedLeastConnectionsScheduling,LBLC)类似目标地址哈希法,是针对目标IP地址的负载均衡算法,调度器根据请求的目标IP地址找出最近为该目标IP地址服务的真实服务器,若该真实服务器是可用的且没有超载,则将请求发送给该真实服务器,否则调度器将使用“最小连接”原则选出一个可用的真实服务器并将请求发送到该服务器,这种算法主要用于Cache集群系统。1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法带复制的基于局部性最少链接法带复制的基于局部性最少链接法(Locality-BasedLeastConnectionswithReplicationScheduling,LBLCR)也是针对目标IP地址的负载均衡,它与LBLC算法的不同之处是它维护的是从一个目标IP地址到一组服务器的映射,而LBLC算法维护的是从一个目标IP地址到一台服务器的映射。1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法带复制的基于局部性最少链接法该算法根据请求的目标IP地址找出为该目标IP地址服务的真实服务器组,按“最小连接”原则从真实服务器组中选出一台真实服务器。若该真实服务器没有超载,将请求发送到该真实服务器,若其超载或者故障,则按“最少连接”原则从整个集群系统中选出一台服务器加入到真实服务器组中,将请求转发到该服务器。同时,当真正处理请求的服务器组有一段时间没有被修改,调度器会将最忙的服务器从该服务器组中删除,以降低复制程度。这种算法同样主要用于Cache集群系统。1.3负载均衡1.3.4负载均衡的算法小结负载均衡算法之所以分为静态调度算法和动态调度算法是因为,静态调度算法只按照固定的算法标准计算而不考虑其他因素,如果指定的服务器不在线或已满载,客户端的请求将不会被转发;而动态调度算法则设置了一系列的约束来动态地分配客户端的请求,除非所有的真实服务器都不在线或满载,否则客户端的请求都将会得到转发。这几种算法中最常用的是轮询法、加权轮询法、最小连接法及加权最小连接法,其中加权最小连接法是LVS的默认算法。在实际使用时,读者可以按需选择合适的算法进行负载均衡。1.4服务器健康检查HTTP/HTTPS监听健康检查机制ICMP监听健康检查机制TCP监听健康检查机制1.4服务器健康检查务器的健康检查是指负载均衡通过健康检查判断后端服务器是否可用。如果后端服务器异常,负载均衡将自动把访问请求转发到其他健康的服务器上;当异常服务器恢复正常时,负载均衡会自动将该服务器加入集群,继续服务。1.4服务器健康检查在七层负载均衡模式下,负载均衡器向后端转发HTTP请求,健康检查通过HTTPHEAD请求获取状态信息,后端服务器收到请求后,根据业务的运行状况,返回HTTP状态码。1.HTTP/HTTPS监听健康检查机制1.4服务器健康检查负载均衡器向后端服务器发送ICMPEcho包,即ping的方式,若后端服务器可以正常收到ICMPReply,那么服务器ICMO协议处理正常,即服务器是“活的”。2.ICMP监听健康检查机制1.4服务器健康检查负载均衡器向后端服务器的相应端口发送TCP连接请求,如果三次握手成功建立,那么服务器TCP协议处理正常。3.TCP监听健康检查机制1.4服务器健康检查除此3种服务器健康检测方式,还可以发送UDP、FTP、DNS、SSL等协议包通过是否收到正确的应答来检查服务器是否存活。服务器的健康检测在集群系统中有着至关重要的作用,有利于维护系统的高可用。小结课后小结本章重点介绍了集群的核心概念和特点、3类集群及相关软硬件,详细介绍了负载均衡相关内容,包括负载均衡的分类、四层和七层负载均衡的区别、负载均衡的主要方式以及负载均衡的算法,还讲解了服务器的健康检测。希望读者仔细阅读本章内容,结合结构图掌握集群的相关概念,为接下来的学习打好基础。第2章Web服务集群2.1Web服务集群简介

2.2

搭建LAMP平台2.3

搭建LNMP平台2.4Nginx—负载均衡2.5Web集群实战案例-业务上线了解Web服务集群的意义熟练搭建LAMP平台熟练搭建LNMP平台熟悉Nginx负载均衡熟练搭建Web服务集群引言大家所熟悉的博客、论坛等网站,其特点就是用户群体较大。当Web服务器直接面向客户端时,服务器往往要承载大量并发请求,单台服务器难以负荷。为了应对以上问题,可以配置多台Web服务器组成集群,以扩展架构的稳定性和可扩展性,承载更多的并发量以及提高用户的访问速度。2.1Web服务集群简介组成及概念Web集群基础架构2.1Web服务集群简介Web服务集群是指配置若干(两台及以上)台Web服务器组成一个系统,作为一个整体为用户提供Web服务。在Web集群环境中,前端使用负载均衡,将用户请求的流量按照算法分散地移交到后端Web服务器集群中,实现请求的分发,将会大大提升系统的吞吐量与请求性能。2.1Web服务集群简介Web服务器又称为网站服务器,能够处理浏览器等客户端的请求然后返回相应结果,Web服务器可提供浏览类网站文件,又可提供下载类数据文件。常见的Web服务器协议有HTTP、HTML文档格式、URL(UniformResourceLocator,统一资源定位符)等,其中URL就是用户在浏览器中输入的网站地址。2.1Web服务集群简介当前主流的Web服务器有Apache、Nginx、IIS,在云端Web类应用中,使用率可达95%以上。Apache是世界使用最多的Web服务器,是Web服务器的“领头人”,同时,Nginx性能稳定,有着代替Apache的趋势,这两者在Linux系统下都能被灵活地配置调用,而IIS主要用于Windows的Web类应用。Web服务器的市场份额2.1Web服务集群简介假设用户A通过负载均衡登录网站,第一次登录的会话信息保存在Web服务器1中,保存的内容叫做Session,可以保证用户“在线”的状态。当网站刷新,负载均衡把请求又分给了Web2,因为Web2没有用户A的登录信息,网站就会提示用户A重新登录,以此类推,用户A无法实现会话保持。实现Session共享就可以解决以上问题,如Nginx负载均衡的ip_hash算法、LVS的持久连接机制、HAProxy负载均衡的source算法以及基于cookie的会话保持处理机制。Web集群基础架构2.2搭建LAMP平台LAMP简介实验的准备环境LAMP的部署及测试2.2

搭建LAMP

平台2.2.1LAMP简介在LAMP中,Linux是自由和开放源码的类Unix操作系统,可安装在各种计算机硬件设备中。Apache是最受欢迎的一个开放源码的Web服务器软件,强大且实用。M可以是多线程、多用户的SQL数据库管理系统MySQL,也可以是MariaDB。P一般是指PHP、Perl或Python等脚本语言,其中PHP是一种编程语言,最初用来设计生产动态网站,主要用于服务器端的应用程序软件。LAMP可以是LinuxApacheMySQLPHP的简写,其实就是把Apache、MySQL以及PHP安装在Linux系统上,来运行动态网站或者服务器,是比较常用的Web搭建框架。2.2

搭建LAMP

平台2.2.1LAMP简介LAMP的工作原理2.2

搭建LAMP

平台2.2.1LAMP简介浏览器向服务器发送HTTP请求,服务器(Apache)接受请求。PHP作为Apache的组件模块也会一起启动,它们具有相同的生命周期。Apache会将一些静态资源保存,然后去调用PHP处理模块进行PHP脚本的处理。脚本处理完后,Apache将处理完的信息通过httpresponse的方式发送给浏览器,经浏览器解析、渲染等一系列操作后呈现整个网页。LAMP的工作原理2.2

搭建LAMP

平台2.2.2实验的准备环境本书全部实验使用虚拟机代替物理服务器,在虚拟环境下的Linux操作系统中进行,实验所用操作系统版本为CentOS7.6。CentOS7自带Firewalld和SELinux守护工具,一外一内,保证系统的安全。严格意义上来说,可以通过配置相关策略来开放系统及服务的访问权限,这种做法虽然较准确但是繁琐。为了避免因防火墙造成各种连接不成功以至于实验失败的情况,这里直接关闭Firewalld和SELinux,后续章节的实验也默认关闭。2.2

搭建LAMP

平台2.2.2实验的准备环境1.查看系统版本号[root@qfedu~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)2.2

搭建LAMP

平台2.2.2实验的准备环境2.关闭CentOS7默认防火墙Firewalld[root@qfedu~]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;enabled;vendorpreset:enabled)Active:active(running)since一2021-10-2518:05:27CST;7hleft……此处省略部分代码……(1)首先查看虚拟机当前防火墙的状态2.2

搭建LAMP

平台2.2.2实验的准备环境2.关闭CentOS7默认防火墙Firewalld通过上面这段代码的反馈信息,可以观察到防火墙目前是开启的。输出结果第2行括号中的第二个字段表示的是服务的自启动状态,若为enabled,则说明该服务会开机自启动;若为disabled,则开机不会自启。第3行active表示的是活动,其冒号后面若为active(running),则表示防火墙为启动状态;若为inactive(dead),则说明当前防火墙为关闭状态。(1)首先查看虚拟机当前防火墙的状态2.2

搭建LAMP

平台2.2.2实验的准备环境2.关闭CentOS7默认防火墙Firewalld[[root@qfedu~]#systemctlstopfirewalld[root@qfedu~]#systemctldisablefirewalld(2)关闭防火墙,并禁止其开机自启2.2

搭建LAMP

平台2.2.2实验的准备环境2.关闭CentOS7默认防火墙Firewalld[root@qfedu~]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;disabled;vendorpreset:enabled)Active:inactive(dead)……此处省略部分代码……(3)再次查看防火墙状态当前防火墙的状态为关闭2.2

搭建LAMP

平台2.2.2实验的准备环境3.关闭SELinux[root@qfedu~]#getenforceEnforcing(1)首先查看当前SELinux的状态系统返回的信息为Enforcing,意为执行,即SELinux正在运行2.2

搭建LAMP

平台2.2.2实验的准备环境3.关闭SELinux[root@qfedu~]#setenforce0[root@qfedu~]#getenforcePermissive(2)临时关闭SELinux,并再次查看SELinux的状态SELinux的状态为Permissive,意为允许的2.2

搭建LAMP

平台2.2.2实验的准备环境3.关闭SELinux[root@qfedu~]#vim/etc/selinux/config#ThisfilecontrolsthestateofSELinuxonthesystem.#SELINUX=cantakeoneofthesethreevalues:#enforcing-SELinuxsecuritypolicyisenforced.#permissive-SELinuxprintswarningsinsteadofenforcing.#disabled-NoSELinuxpolicyisloaded.#SELINUX=enforcing#修改前SELINUX=disabled#修改后(3)禁止SELinux开机自启将SELINUX=enforcing修改为SELINUX=disabled2.2

搭建LAMP

平台2.2.2实验的准备环境3.关闭SELinux[root@qfedu~]#reboot[root@qfedu~]#getenforceDisabled(4)重启虚拟机,再次查看SELinux状态SELinux的状态为Disabled,说明SELinux已关闭,并被禁止开机自启。至此,准备工作已全部完成,本书后续实验将不再详细介绍该环节。2.2

搭建LAMP

平台2.2.3LAMP的部署及测试在单机环境下部署LAMP环境,首先关闭防火墙及SELinux,之后利用yum工具依次安装Apache、PHP和MySQL,并进行测试。准备1台VM虚拟机搭建LAMP平台HostNameIP说明web139搭建LAMP框架说明:操作系统版本CentOS7.6,提前关闭防火墙及SELinux。2.2

搭建LAMP

平台2.2.3LAMP的部署及测试1.Apache的安装与测试[root@web1~]#yum-yinstallhttpd……此处省略部分代码……已安装:httpd.x86_640:2.4.6-97.el7.centos.2作为依赖被安装:apr.x86_640:1.4.8-7.el7apr-util.x86_640:1.5.2-6.el7httpd-tools.x86_640:2.4.6-97.el7.centos.2mailcap.noarch0:2.1.41-2.el7完毕!(1)安装Apache2.2搭建LAMP平台2.2.3LAMP的部署及测试1.Apache的安装与测试[root@web1~]#httpd-vServerversion:Apache/2.4.6(CentOS)Serverbuilt:Nov10202114:41:18本次实验的Apache版本为2.4.6(1)安装Apache2.2搭建LAMP平台2.2.3LAMP的部署及测试1.Apache的安装与测试[root@web1~]#systemctlstarthttpd[root@web1~]#systemctlenablehttpdCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/httpd.serviceto/usr/lib/systemd/system/httpd.service.(3)启动Apache服务并设置开机自启2.2搭建LAMP平台2.2.3LAMP的部署及测试1.Apache的安装与测试在本机浏览器中输入虚拟机的IP地址,如果看到Apache默认的测试页面,说明Apache服务成功运行。直接在浏览器上访问当前主机的IP地址。(4)验证Apache服务是否安装成功2.2搭建LAMP平台2.2.3LAMP的部署及测试1.Apache的安装与测试Apache的默认网站目录是/var/www/html,先切换到该路径,再创建HTML静态页面。(5)测试Apache是否能解析常见的静态页面[root@web1~]#cd/var/www/html/[root@web1html]#vimindex.htmlWelcometotheworld!2.2搭建LAMP平台2.2.3LAMP的部署及测试1.Apache的安装与测试在浏览器中输入IP地址。(5)测试Apache是否能解析常见的静态页面静态页面被成功解析,访问正常2.2搭建LAMP平台2.2.3LAMP的部署及测试1.Apache的安装与测试对动态页面进行测试,这里选用的是动态语言中最常用的PHP语言作为测试对象。在网站根目录编写一个PHP文件:(5)测试Apache是否能解析常见的动态页面[root@web1html]#vimindex.php<?phpphpinfo();?>2.2搭建LAMP平台2.2.3LAMP的部署及测试1.Apache的安装与测试在浏览器中访问39/index.php(5)测试Apache是否能解析常见的动态页面服务器仅仅把index.php当作正常的静态语言原封不动地进行输出,并没有对PHP语言进行解释,这是因为Apache本身并不能识别PHP语言。如果想达到预期效果,服务器需要先借助PHP软件进行翻译,再根据翻译后的含义进行相关操作。2.2搭建LAMP平台2.2.3LAMP的部署及测试2.PHP的安装与测试[root@web1html]#yum-yinstallphp……此处省略部分代码……已安装:php.x86_640:5.4.16-48.el7作为依赖被安装:libzip.x86_640:0.10.1-8.el7php-cli.x86_640:5.4.16-48.el7php-common.x86_640:5.4.16-48.el7完毕!(1)安装PHP2.2搭建LAMP平台2.2.3LAMP的部署及测试2.PHP的安装与测试[root@web1html]#systemctlrestarthttpd(2)重启Apache服务2.2搭建LAMP平台2.2.3LAMP的部署及测试2.PHP的安装与测试安装PHP之后,Apache可以实现对动态页面的正常访问。需要注意的是安装PHP之后,需要重启Apache,才能实现Apache与PHP的连接。(3)再次访问index.php2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试[root@web1~]#yum-yinstallmariadbmariadb-server……此处省略部分代码……已安装:

mariadb.x86_641:5.5.64-1.el7mariadb-server.x86_641:5.5.64-1.el7作为依赖被安装:perl-Compress-Raw-Bzip2.x86_640:2.061-3.el7perl-Compress-Raw-Zlib.x86_641:2.061-4.el7perl-DBD-MySQL.x86_640:4.023-6.el7perl-DBI.x86_640:1.627-4.el7(1)安装MariaDB客户端与服务端perl-Data-Dumper.x86_640:2.145-3.el7perl-IO-Compress.noarch0:2.061-2.el7perl-Net-Daemon.noarch0:0.48-5.el7perl-PlRPC.noarch0:0.2020-14.el7作为依赖被升级:mariadb-libs.x86_641:5.5.68-1.el7完毕!2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(1)安装MariaDB客户端与服务端启动MariaDB服务,并设置其开机自启[root@web1~]#systemctlstartmariadb[root@web1~]#systemctlenablemariadb2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(2)更改数据库密码首先,通过如下指令进入数据库安全设置模式。[root@web1~]#mysql_secure_installation2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(2)更改数据库密码然后,对数据库密码进行修改。这里设置的用户名默认为root,密码为123。[root@web1~]#mysql_secure_installation……此处省略部分代码……Entercurrentpasswordforroot(enterfornone):#回车OK,successfullyusedpassword,movingon...SettingtherootpasswordensuresthatnobodycanlogintotheMariaDBrootuserwithouttheproperauthorisation.Setrootpassword?[Y/n]YNewpassword:123Re-enternewpassword:123Passwordupdatedsuccessfully!Reloadingprivilegetables.....Success!……此处省略部分代码……Cleaningup...Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(3)登录数据库测试[root@web1~]#mysql-uroot-p123WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis11Serverversion:5.5.64-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>\qBye2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(4)测试PHP与数据库是否连通首先在网站根目录下创建linktest.php,设定之前设置的数据库账户及密码,若能通过该账户密码正常连接数据库,则返回Successfully,否则返回Fail。[root@web1~]#vim/var/www/html/linktest.php<?php$link=mysql_connect('localhost','root','123');if($link)echo"Successfully";elseecho"Fail";mysql_close();?>2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(4)测试PHP与数据库是否连通在浏览器上访问linktest.php服务器目前无法处理这个请求。虽然已经安装了数据库,但是并没有将数据库与网站服务连接起来,缺少PHP与数据库连接的插件。2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(5)查看PHP的拓展模块[root@web1~]#php-m|grepmysql2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(6)安装php-mysql[root@web1~]#yum-yinstallphp-mysql……此处省略部分代码……已安装:php-mysql.x86_640:5.4.16-48.el7作为依赖被安装:php-pdo.x86_640:5.4.16-48.el7完毕!2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(7)再次查看PHP的拓展模块[root@web1~]#php-m|grepmysqlmysqlmysqlipdo_mysql2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(8)重启Apache服务[root@web1~]#systemctlrestarthttpd2.2搭建LAMP平台2.2.3LAMP的部署及测试3.数据库的安装与测试(9)再次在浏览器上访问linktest.php改动linktest.php中的账户或密码,这里将root改为rooot,再次访问linktest.php2.2搭建LAMP平台2.2.3LAMP的部署及测试由此可知,在Apache上运行一个网站是非常简单的,只要将源码放入网站根目录即可。随着业务的发展,越来越多的公司选择使用Java语言来开发应用。能够发布JavaWeb程序的服务器需要支持Servlet和Jsp规范,常见的有Tomcat服务器、Resin服务器、JBoss服务器、WebLogic服务器等。其中Tomcat服务器性能稳定且开源免费,易被初学者掌握,因此,读者在课余时间可以学习Tomcat服务器的相关内容。2.3搭建LNMP平台LNMP简介LNMP的部署及测试2.3

搭建LNMP平台2.3.1

LNMP简介LAMP是LinuxNginxMySQLPHP的简写,即把Nginx、MySQL以及PHP安装在Linux系统上,组成一个高效、免费、高扩展的网站服务系统,是国内大中型互联网公司网站常用的Web搭建框架。LAMP中是以Apache作为Web服务器与客户端浏览器进行交互,顾名思义,在LNMP环境中,是以Nginx作为Web服务器。Nginx(enginex)是一款高性能、轻量级的Web服务器,是一款反向代理服务器,也是一款邮箱代理服务器(IMAP/POP3/SMTP),具有性能优越、功能丰富、占有内存少等优点。Nginx既适用于静态业务又适用于动态业务,国内的百度、淘宝、阿里、小米等知名网站都在使用Nginx来满足其高并发业务的需求,已经开始逐渐代替Apache。2.3

搭建LNMP平台2.3.1

LNMP简介LNMP的工作原理如图所示。浏览器发送请求到服务器(Nginx),服务器响应并处理Web请求。如果是静态文本直接返回,否则将脚本(PHP)通过接口传输协议(网关协议)PHP-FCGI(fast-cgi,快速通用网关接口)传输给PHP

温馨提示

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

评论

0/150

提交评论