首页 > 代码库 > 大流量IIS负载均衡NLB解决方案
大流量IIS负载均衡NLB解决方案
说白了就是 用多台WEB服务器 同时处理大量的http请求! 机器越多力量越大呵呵!!!
在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。
那么,有没有一个办法或者技术来解决此类问题呢?使用Windows 2000或Windows Server 2003中的网络负载平衡群集就可以(本文将介绍Windows Server 2003中的网络负载平衡技术的实现方法)。
一、网络负载平衡的优点
1.网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务。网络负载平衡技术保证即使是在负载很重的情况下它们也能作出快速响应。
2.网络负载平衡对外只须提供一个IP地址(或域名)。
3.如果网络负载平衡中的一台或几台服务器不可用时,服务不会中断。网络负载平衡自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客户机通讯。此保护措施能够帮助你为关键的业务程序提供不中断的服务。可以根据网络访问量的增多来增加网络负载平衡服务器的数量。
4.网络负载平衡可在普通的计算机上实现。
二:过程规划
环境结构
2台服务器,系统为2003,都是单网卡《有的说要双网卡,有双网卡的时候只是为了远程管理的方便,对于NLB关系不是很大,对故障转移到是很需要》,如图
WEB1:10.0.0.1
WEB2:10.0.0.3
群集虚拟IP:10.0.0.2
<ignore_js_op>
1,首先,我们要先设置好服务器的名字和IP地址,这是前提,在此就不在截图了
2,打开WEB1,以管理员身份登录,从“管理工具”中运行“网络负载平衡管理器”,用鼠标右键单击“网络负载平衡群集”如图
<ignore_js_op>
3,从出现的菜单中选择“新建群集”,进入“群集参数”界面。设置完成后进行下一步
<ignore_js_op>
4,可以根据自身的情况进行添加,然后下一步
<ignore_js_op>
5,看下端口规则的解释,根据自身情况进行添加和编辑,然后下一步
<ignore_js_op>
6,这里是单网卡,如果是多网卡的话,会全部显示出来,在选择的时候一定要注意,选择对方提供服务的IP地址,这里就一个也就无所谓了!
<ignore_js_op>
7,设置第一台服务器的优先级
<ignore_js_op>
8,正在进行配置,一小会就会完成变成绿色的!
<ignore_js_op>
9,至此,第一台已经配置完成,下面就是加入第二台服务器,方法一样的,在此就不在截图了,最后完成的如图,都处于聚合状态
<ignore_js_op>
以后,如果这两台服务器不能满足需求,可以按以上步骤添加第3台、第4台计算机到网络负载平衡中以满足要求。
三:用IIS服务验证网络负载平衡
网络负载平衡配置好后,为了实现某项具体的服务,需要在网络负载平衡的计算机上安装相应的服务。例 如:为了实现IIS网站的负载平衡,需要在相应的网络负载平衡的计算机上安装IIS服务。
安装网络负载平衡的应用程序时,不需要特别的方法,只需要在配置好网络负载平衡的计算机上安装相应的服务即可。但是为了让每个用户在通过网络负载平衡访问到不同的计算机时,能够访问到一致的数据,需要在网络负载平衡的每台计算机上保持数据的一致性。举例来说:实现了两个节点的IIS的网络负载平衡,为了保证两个网站内容的一致性,除了这两个IIS服务器的配置相同外,相应的网站数据必须一致。
1,在“添加/删除程序”中,点击“添加Windows组件”,进入Windows组件向导,双击“应用程序服务器”,进入“应用程序服务器”选中ASP.NET、Internet信息服务及应用网络COM+访问后,即可开始安装IIS服务。
2,安装之后,进入WEB1的inetpub\wwwroot目录,新建一个文本文件,输入以下内容:this is WEB1 另存为default.htm
3,进入WEB2的inetpub\wwwroot目录,新建一个文本文件,输入以下内容:
this is WEB2 另存为default.htm
4,如果是对外的IIS,那么内容应该是一样的,这里我们为了达到效果明显,才把内容写的不一样,如果要达到2太服务器网站内容一样,可以使用DFS自动复制!
5,我们开始测试,使用一台XP进行访问,如图
在服务器正常的时候提供服务的是WEB1,因为他的优先级最高
<ignore_js_op>
当WEB有问题的时候,那么用户在访问的时候结果如图
<ignore_js_op>
四,至此此次试验已经结束!
另外:在第一次做双网卡试验的时候没有异常,但在第二次做单网卡试验的时候出现如图故障
<ignore_js_op>
查找注册表发现,错误字串和网卡信息有关,对应的键是NetCfgInstanceId.加入NLB节点的主机接口,必须要有不同的NetCfgInstanceId.
经测试,NewSID并不修改该值,因此虽然两台虚拟机的SID不同,但由于NetCfgInstanceId一样,导致第二个节点加入NLB群集时出错.
解决办法有两个,都可以修改NetCfgInstanceId:
1.使用NewSID后,在设备管理器里卸载网卡,扫描检测硬件改动,重新配置网络;
2.直接使用sysprep.
其他信息: NetCfgInstanceId所在的注册表项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\
{4D36E972-E325-11CE-BFC1-08002bE10318}\0001\NetCfgInstanceId
用大括号括起来的是"网络适配器"项,每个系统可能不同;下面的子项有数个,需要找本地连接对应的,譬如上面的是0001. 简单的法子是先看网卡的名字,如VMware Accelerated AMD PCNet Adapter,然后在Class上点右键查找网卡名,即可到达.