服务器如何实现集群和负载均衡
2 应该是每台都会有一个IP地址 外网 访问连接到的那个IP地址 是你的负载均衡交换机的IP地址 他随机把你的访问请求分配到你的3台服务器上
3 无主从关系,负载均衡交换机它会没2秒左右向你的服务器发送一个健康检查,如果发现你的服务器出现问题,它会自动屏蔽你这台服务器
4 你问的重复问题。
这篇实用文章介绍如何将pfSense 20配置成你那些Web服务器的负载均衡器。这篇实用文章假设你已经安装了一个pfSense设备和至少两台Apache服务器,并且运行在你的网络上;还假设你具备了pfSense方面的一些知识。
要求
一台设备用于安装pfSense 20(如果这是你的边缘防火墙,我会建议物理机器)。
至少两台Apache2服务器(这些可以是虚拟服务器)。
对Apache服务器进行了配置,以便以某种方式同步Web文件(rsync/corosync或通过Web服务器维持文件版本最新的另一个选项)。
配置pfSense
pfSense使用负载均衡器,将某些类型的流量带来的负载分摊到多台服务器上;如果你有多台服务器用于托管运行应用程序,这很好;你可以将负载分摊到所有服务器上,而不是把负载全扔给一台服务器、导致不堪重负。
可以入手了,先点击“Services”(服务),然后点击“Load Balancers”(负载均衡器),然后点击“Monitor”(监视器)选项卡。
要添加一个新条目,点击“Plus”(添加)按钮,指定“Name”(名称)和“Description”(描述,在这个示例中,我会使用ApacheClusterMon作为名称和描述),将类型设成“HTTP”,然后为“Host”(主机)设置一个未使用的IP地址(我们随后会创建虚拟服务器的IP,以便分配给故障切换服务器组),任由“HTTP Code”(HTTP代码)设成“200 OK”。需要的话,然后点击“Save”(保存),使更改生效。
现在我们要创建服务器池。点击“Pools”(服务器池)选项卡,点击“Plus”(添加)按钮,即可添加新的服务器池。
指定一个名称(ApacheSrvPool将用在我的示例中)。将“Mode”(模式)设成“Load Balance”(负载均衡),然后将“Port”(端口)设成“80”(你可以让pfSense对其他端口上的其他应用程序实现负载均衡),将“Monitor”(监视器)设成你之前创建的监视器配置,并且指定你希望在服务器池中的所有Web服务器的IP地址,需要的话,点击“Save”(保存),使更改生效。
接下来点击“Virtual Servers”(虚拟服务器)选项卡,点击“Plus”(添加)按钮,添加一个新条目。指定“Name”(名称)和“Description”(描述),然后用你之前选择的未使用IP地址来设置“IP Address”(IP地址),将“Port”(端口)设成“80”,然后将“Virtual Server Pool”(虚拟服务器池)设成你之前创建的服务器池,点击“Submit”(提交),使更改生效。
就这样,你刚配置好了pfSense,对你的Web服务器之间的网络流量实现负载均衡。
顺便提一下,如果任何一台服务器没有给出200 OK状态这样的回应(pfSense定期向你的Web服务器发送请求,以确定它们是否正常运行),服务器池就会处于离线停运状态。要避免出现停运,最好的办法就是配置故障切换系统(下一篇文章会有介绍)。
负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。
软件负载
基于特定服务器软件的负载均衡
---- 这种技术是利用网络协议的重定向功能来实现负载均衡的,例如在Http协议中支持定位指令,接收到这个指令的浏览器将自动重定向到该指令指明的另一个URL上。由于和执行服务请求相比,发送定位指令对Web服务器的负载要小得多,因此可以根据这个功能来设计一种负载均衡的服务器。一旦Web服务器认为自己的负载较大,它就不再直接发送回浏览器请求的网页,而是送回一个定位指令,让浏览器去服务器集群中的其他服务器上获得所需要的网页。在这种方式下,服务器本身必须支持这种功能,然而具体实现起来却有很多困难,例如一台服务器如何能保证它重定向过的服务器是比较空闲的,并且不会再次发送定位指令?定位指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。因此这种方式实际应用当中并不多见,使用这种方式实现的服务器集群软件也较少。
DNS负载
基于DNS的负载均衡
---- DNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。
---- 这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的负载均衡,DNS服务器将Http请求平均地分配到后台的Web服务器上,而不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和处理能力不同,最慢的Web服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS请求分配到这台故障服务器上,导致不能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受Web服务,并且由于DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为24小时)。所以在国外最新的建设中心Web站点方案中,已经很少采用这种方案了。
交换负载
基于四层交换技术的负载均衡
---- 这种技术是在第四层交换机上设置Web服务的虚拟IP地址,这个虚拟IP地址是DNS服务器中解析到的Web服务器的IP地址,对客户端是可见的。当客户访问此Web应用时,客户端的Http请求会先被第四层交换机接收到,它将基于第四层交换技术实时检测后台Web服务器的负载,根据设定的算法进行快速交换。常见的算法有轮询、加权、最少连接、随机和响应时间等。
七层负载
基于七层交换技术的负载均衡
---- 基于第七层交换的负载均衡技术主要用于实现Web应用的负载平衡和服务质量保证。它与第四层交换机比较起来有许多优势:第七层交换机不仅能检查TCP/IP数据包的TCP和UDP端口号,从而转发给后台的某台服务器来处理,而且能从会话层以上来分析Http请求的URL,根据URL的不同将不同的Http请求交给不同的服务器来处理(可以具体到某一类文件,直至某一个文件),甚至同一个URL请求可以让多个服务器来响应以分担负载(当客户访问某一个URL,发起Http请求时,它实际上要与服务器建立多个会话连接,得到多个对象,例如txt/gif/jpg文档,当这些对象都下载到本地后,才组成一个完整的页面)。
---- 以上几种负载均衡技术主要应用于一个站点内的服务器群,但是由于一个站点接入Internet的带宽是有限的,因此可以把负载均衡技术开始应用于不同的网络站点之间,这就是站点镜像技术,站点镜像技术实际上利用了DNS负载均衡技术。
0条评论