使用Nginx实现负载均衡

使用Nginx实现负载均衡,第1张

一、负载均衡的作用

1、转发功能

按照一定的算法权重、轮询,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。

2、故障移除

通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕掉,自动将请求发送到其他应用服务器。

3、恢复添加

如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队伍中。

二、Nginx实现负载均衡

1、源地址哈希法:根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

2、轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

3、随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。

4、加权轮询法:不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。

5、加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。

6、最小连接数法:由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。

三、配置说明
四、轮询
五、权重
六、iphash
七、最少链接
八、fair
九、完整代码
十、也可以使用域名

服务器配置低,终端配置高怎么办?服务器负载过高的原因是什么
1、带宽不足:服务器被攻击或者高频访问流量涌入都可能导致网站带宽不足出现网站卡的情况。
2、内存不足:运行的程序或者数据库可能太大,我们的服务器太小,都可能导致我们内存不足使得服务器卡顿。
3、CPU负载过高100%:程序错误或者运行数据量过大都可能导致CPU负载高而导致服务器卡顿。
4、硬盘满了:硬盘满了会导致服务器卡死,可能连远程连接都无法登录。也会引发服务器负载过高情况。

SNAT叫源地址转换。
是为了解决来回路径不一致的问题。
如果不做SNAT,服务器看到的请求IP不是同一段的IP地址,返回数据包时会经过网关设备,直接跳过了负载设备。导致客户端看到的是服务器直接返回的数据,而非自己所请求的IP地址返回的数据包。
因为来回路径不一致,这时客户端就会认为是一个非法连接而拒绝掉,导致会话中断。
开启SNAT后,服务器看到的都是由负载设备发起的会话,服务器返回数据包时会返回至负载均衡设备,再由负载均衡设备返回至客户端,整个会话完成。

网卡负载均衡服务器
前言:市面上现在天生支持绑定功能的网卡不多,而且多是出身名门的高档服务器网卡,身价不菲,设置过程也比较专业,使用和维护都不简便。难道我等平头百姓,攥着几十元的廉价8139的兄弟们就无缘领略双网卡绑定的快感了吗?非也,今天我就教大家一招,只需一款小小的软件,就可以用普通的8139之类的网卡体验一把双网卡绑定的愉悦,这个软件就叫做“NICExpress”,可能行家们已经捂着嘴乐了,呵呵,笔者的出发点是给菜鸟兄弟们排难解惑,穷办法自娱自乐,说得过火的地方,大家不要见笑,DIY的乐趣就在于此啊。
朋友或许会问了,为什么要用双网卡呢?用双网卡有什么好处?所谓双网卡,就是通过软件将双网卡绑定为一个IP地址,这个技术对于许多朋友来说并不陌生,许多高档服务器网卡(例如intel8255x系列、3COM服务器网卡等)都具有多网卡绑定功能,可以通过软硬件设置将两块或者多块网卡绑定在同一个IP地址上,使用起来就好象在使用一块网卡。
多网卡绑定的优点不少,首先,可以增大带宽,假如一个网卡的带宽是100M,理论上两块网卡就是200M,三块就是300M,当然实际上的效果是不会是这样简单的增加的,不过经实际测试使用多个网卡对于增加带宽,保持带宽的稳定性肯定是有裨益的,如果交换机等相关条件不错的话,这个效果还是很能令人满意;其次,可以形成网卡冗余阵列、分担负载,双网卡被绑定成“一块网卡”之后,同步一起工作,对服务器的访问流量被均衡分担到两块网卡上,这样每块网卡的负载压力就小多了,抗并发访问的能力提高,保证了服务器访问的稳定和畅快,当其中一块发生故障的时候,另一块立刻接管全部负载,过程是无缝的,服务不会中断,直到维修人员到来。
OK,现在就手把手的教大家如何用50元来打造出双网卡的效果!
先下载软件(点击这里下载),这是最新版本40,只有215M,软件的兼容性已经做得很好,支持win98/Me/2000/XP/2003。基本上支持目前市场上常见的各种网卡,百兆和千兆网卡都可以用来绑定,但是千万注意,最好用于绑定的网卡是完全相同的,至少也是基于同一芯片的,这样多块网卡才能合作得比较好。切记不要把10M网卡和100M网卡绑定在一起,那样根本起不到提升作用。
下载完软件,先不忙安装,咱们还是先准备好硬件。
第一部分:硬件安装
虽然,理论上讲绑定越多网卡在一起,最终效果提升就越明显,但是考虑到复杂程度,这里就以绑定双网卡为例进行说明,如果读者觉得好玩,兴致很高的话,按照下面方法愿意绑定多少就绑定多少个网卡,其实一般同一台服务器,绑定2-3块网卡也就够了,太多了,据说因为链路聚合的先天缺点,会过多占用服务器资源,反过来会影响服务器速度(关于这个我没实验,不过我觉得凡事都离不开物极必反的道理,适度最好)。
然后,抱出笔者的一台私有服务器,呵呵,虽然破旧一点,不过可是立功不小啊,上面现在运行着FTP、MAIL等服务,几百个朋友的EMAIL都是通过它来传递的啊。配置情况为intel810主板(集成显卡)+256MSD内存+10GIDE硬盘(系统盘)+120GIDE硬盘(存放互联网垃圾)。系统软件是windows2000高级服务器版。
废话少说,开干,打开服务器机箱,把两块网卡拧在主板PCI插槽上,拧好了,看看还不错
拿出珍藏的10M-8口集线器,哈哈,别笑话,我手头只有这个,能说清楚方法就可以了,如果是读者自己DIY,请务必选一台好的交换机,至少要10/100M自适应的,这是网络通畅的关键,别象我把100M网卡连在10M集线器上,那速度怎么也好不了啊。做几条网线,把集线器、网卡连接起来,集线器连入上级交换机,因为是在家里实验,所以,我就把集线器的Uplink口连入家用路由器的任意一个网口里,路由器则连入我家ADSL“大猫”。
第二部分:设置调试
下面要进行设置及调试了,也就是要将这两块8139D廉价网卡,如同高档服务器网卡那样绑定在一起,使用同一个IP地址,同时同步工作。其过程并不复杂,估计20分钟足够了。
将刚刚下载的NIC Express软件的安装包NIC4rar解压缩得到安装文件“NICExpressW2KEEexe”,双击它启动安装程序,一路NEXT,软件提示输入unlock key(注册码),如果没有注册码,就只好点击Demo,选择试用,这样可以获得30天的免费试用期,在这30天里如果觉得不错,你可以想办法去弄一个注册码(怎么弄?找小编问,他可能有,哈哈)。
到下图所示界面,软件提示选择是否开启LOAD Balancing 功能?什么是LOAD Balancing 功能呢?LOAD Balancing的中文意思可以翻译为负载均衡,在这里就是网络负载均衡。也就是当多块网卡被绑定合一之后,当数据流量很大的时候,软件会自动调整,将数据流量负载均衡地分配到各个网卡上,以减轻单块网卡的压力,达到畅快的访问效果。我们绑定双网卡,其中目的之一就是为了实现负载均衡,我们自然要开启这个功能,所以,在这里一定要选择“Enabled”。当然,如果你在这里选择错了也没关系,今后也可以通过NIC Express软件管理界面开启。
继续一路NEXT,在Windows XP里安装时如果遇到提示“NIC Express Virtual Miniport”没有通过Windows测试,无法验证它同Windows XP的相容性,不要理会,选择“仍然继续”就行了。
到了下图所示界面,就到了真正绑定网卡的时候了:
大家看到这个界面一共分为上、中、下,三个窗口,上面的是空白,中间的写着8139-2,这个8139-2是我自己起的绑定之后的网卡组的名称,原来这里默认写的是New array,也可以不修改,你也可以根据自己喜好,写成别的名字。在最下面的窗口里列出了目前服务器上安装的两块网卡的名字。我们下一步就是要用鼠标选中下面的两块网卡名字,然后点击界面中间的Add键,把两块网卡加入上面的窗口里,这样两块网卡就这样被加入了网卡组里,初步绑定成一块“网卡”了,今后可以使用同一个IP地址了。
点击OK继续,NIC Express出现一个配置界面,选项很多,但是不必太 *** 心,因为这些配置都不必修改,使用默认值就可以了,直接点击OK、点击Finish完成安装进程。至此软件安装基本结束,剩下就需要对软件和网卡进行一些必要的设置工作。
点击桌面“开始”菜单,选择执行菜单里的“NIC Express Enterprise Edition”选项,这是NIC Express软件自带的一个监控程序,首先点击“setting”选项,在这里可以设置网卡流量计量单位,可以按照Packets/Sec、Mbits/Sec、Kbits/Sec三种单位来计算,一般都是使用默认的Mbits/Sec来计算,也就是兆/每秒,其实在这里只需要修改一下“Graph Detail(图形显示)”即可,将默认的“By Protocol”改成“By Incoming/Outgoing”,别的不需要改。
如果你想分别观察绑定组中每块网卡的流量或者整个组的流量,只需在“Select Device”选项中选择一下设备即可。最后点击“Advanced”选项,设定网卡绑定的工作模式,在这里也可以点击“Load Balancing Disable”来关闭网卡负载均衡功能。使用NIC Express绑定的双网卡组默认工作于“NIC Express ELB”模式下,这是NIC Express所特有的一种工作模式,实际效果很好。我们都知道利用昂贵的Intel PROSET绑定的Intel 8255x的组合是运行在“8023ad”工作模式下的,这一模式在NIC Express中也可以选择,但是多数使用者在实际使用后都认为“NIC Express ELB”模式的效果优于“8023ad”模式,大家今后可以自己实践测试比较一下。如果你也使用默认的“NIC Express ELB”模式,那么“Advanced”选项里也就不用改什么,一切默认即可。至此NIC Express的设置结束。
第三部分:“虚拟网卡”设定
最后还要看看网卡的设置,用鼠标在桌面“网上邻居”上点击右键d出“网络和拨号连接”窗口,可以看到原来的两个网卡连接图标已经变成了三个,多出来的一个图标就是“NIC Express Virtual Adapter”,这个就是绑定后的网卡组,这个网卡组的使用和使用单一网卡完全一样,相当于一个单一的“虚拟网卡”。
用鼠标在这个图标上点击右键选择属性,可以为这个“虚拟网卡”设定IP地址、子网掩码、网关等等,其实在安装“NIC Express”过程中,如果服务器原来的单一网卡已经设置了这些,那么“虚拟网卡”就会自动设定和原来的网卡一样。在这里选择“NIC Express Transport for Ethernet”还可以自由对网卡绑定组进行调整,例如,减少或者加入一块网卡,这个较之Intel PROSET要方便许多,Intel PROSET在增加或者减少绑定组里的网卡之前必须删除原来的绑定组然后重新创建。
好了,好了,至此一切都已经做好,我们的服务器已经成为一台地地道道的“双网卡冗余服务器”了,我们来运行一下,看看表现。
第四部分:测试双网卡绑定后的效果
检查一下线路,前面说过两块网卡已经用网线连入10M集线器(这就相当于机房机柜里的百兆交换机),集线器的Uplink口连入了家用路由器的任意一个网口,路由器通过ADSL大猫接入互联网(北京512K包月ADSL),这样服务器就已经和互联网连通了,按下Power键启动服务器,由于服务器里面已经安装了动态域名软件,服务器启动之后,很快与国际域名>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10862163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存