目录
Load Balance
Load Balance:负载均衡提供了一种有效的方法提高网络设备、服务器等设备的并发访问、保证网络服务的灵活性和可用性。
LB的原理:将一个网络服务所需要处理的大量数据均衡的分摊到多个操作单元上进行执行。
使用NLB来部署Web Farm集群
服务器集群 Cluster:通过集群的思想和方法让大量的服务器同时支撑一个服务,在客户端看来就像是只有一台服务器在运行。集群可以利用多台计算机进行并行计算从而获得很高的计算速度,也可以用多台计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。集群化操作可以减少单点故障数量,并且实现了集群化资源的高可用性。
NLB(Network Load Balance):网络负载均衡,通过将多台IIS Web服务器组成Web Farm的方式,可以提供一个具备排错、负载平衡的高可用性能网站。当Web Farm接收到多个不同用户的连接请求时,这些请求会被分散的送到Web Farm中不同的Web服务器来处理,以此来提高访问效率。并且若Web Farm中有Web服务器因为故障而无法继续提供服务时,会由其他仍然能够正常运行的Web服务器来继续为用户提供服务,因此Web Farm还具有故障转移的功能。
Web Farm架构
- Web Farm内的每一台Web服务器的对外网卡各有一个静态IP地址。服务器通过这些静态IP对外发送流量。
- 创建一个NLB Cluster,将IIS Web Server加入到NLB Cluster中后,它们就会共享着同一个集群IP地址(虚拟IP地址)。并通过这个集群IP地址来接受用户的上网请求。
- 当NLB接受到这些请求后,会均衡的将这些请求交由NLB Cluster中的IIS Web Server处理。这样就达到了负载均衡的目的,增强了IIS Web Server的性能和可用性。
环境准备
准备服务器:
-
Win08R2_PC1
- Hostname=win08r2pc1
- 网卡int1=192.168.1.100/24(StaticIP) \ 网卡int2=集群IP(先不设置)
- DNS Service
- IIS Web Service
- FileService
-
Win08R2_PC2
- Hostname=win08r2pc2
- 网卡int1=192.168.1.200/24(StaticIP) \ 网卡int2=集群IP(先不设置)
- IIS Web Service
-
Win7_pc1
- Hostname=win7pc1
- IP = 192.168.1.222/24
- 虚拟网络VMNet1、VMNet2
- Win08r2pc1和Win08r2pc2中的int1、int2分别连接到Net1、Net2
配置上述准备环境并测试能否成功通信
在Win08r2pc1中配置DNS服务
创建neishida.com,并在域内添加一条A记录(www.neishida.com <–> 192.168.1.8)
注意:192.168.1.8 为集群IP,即用户发送请求的目标IP。
测试:在Win7pc1中解析www.neishida.com的域名
在Win08r2pc1中部署File Service文件服务
File Service用于存储Web服务器的共享设置和共享网页内容。
Step1:在Win08r2pc1中新建一个本地安全用户,以便两台服务器的Web服务可以利用这个账号来连接文件服务器。
开始 –> 管理工具 –> 计算机管理 –> 本地用户和组 –> 添加新用户webuser(取消下次登陆修改密码,选择密码永不过期)
Step2:新建用于存放共享配置和共享站点网页文件的文件夹C:\\Webfiles
,并赋予用户webuser完全控制权限
接着在共享文件夹Webfiles下创建两个文件夹configurations和Contents分别用于存放共享配置文件和网页文件
Step3:将共享文件夹的所有者设定为webuser,否则可能会出现由于权限不足导致的配置文件无法访问。
在Win08r2pc1中部署IIS Web服务
Step1:添加IIS Web服务角色并设定使用ASP .NET为Web后端支撑
Step2:更改站点欢迎页面的优先级最高为default.aspx,可以有效的提高网站的访问效率。
Step3:在默认的站点目录%SystemDrive%\inetpub\wwwroot
下创建测试网页文件default.aspx。
写入下列asp代码:
<b>客户端的IP地址为:</b>
<%Response.Write(Request.ServerVariables("remote_addr"))%><br>
<b>Web Server的IP地址是:<b>
<%Response.Write(Request.ServerVariables("local_addr"))%>
Step4:在Win7pc1中访问http://192.168.1.100
测试Web服务是否正常运行。
在win08r2pc2上部署IIS Web服务
与在win08r2pc1上部署web服务的步骤大致相同,但是不需要在win08r2pc2上写入default.aspx。
安装完成之后,在win7pc1*问http://192.168.1.200
测试web服务时候正常运行。
配置共享的站点文件夹
我们需要将两个Web服务器共同使用共享文件夹c:\Webfiles
来作为站点文件夹
win08r2pc1中的web共享配置
Step1:将win08r2pc1中的default.aspx文件复制到共享文件夹c:\Webfiles\Contents
中
Step2:将用户webuser加入到IIS_IUSRS组中。
Step3:将共享文件夹c:\Webfiles\Contents
作为win08r2pc1的Web服务站点文件夹。
打开Web网站Default Web Site的基本设置 –> 在物理路径处输入 \192.168.1.100\Webfiles\Contents –> 点击连接为 –> 设定站点文件夹的指定访问用户为webuser
Step4:测试
完成配置之后,无论是在win08r2pc1还是在win08r2pc2中都只能通过用户webuser来访问共享的站点文件夹。
Step5:在win7pc1中再次输入http://192.168.1.100来访问网站。
Step6:配置Web1的共享设置
先将Web1的共享设置和密钥导出到共享文件夹c:\Webfiles\configurations
中。
需要使用用户webuser的凭证来进行操作,并且需要为位置文件加密。
输入密钥密码后导出密钥
Step7:企业Web1的共享配置功能
此时在win08r2pc1中的Web服务密钥就会备份到本地计算机的%Systemroot%\System32\inetsrv\config
文件夹中。
Step8:重启Web服务器使配置生效
win08r2pc2中的web共享配置
Step1:在win08r2pc2中创建一个用于访问共享站点文件夹的同名用户webuser,并让webuser隶属于IIS_IUSERS组。
Step2:将win08r2pc2的站点目录设置为\\192.168.1.100\Webfiles\Contents
Step3:在win7pc1中输入http://192.168.1.200
测试是否能够正常访问win08r2pc2的web服务
Step4:设置win08r2pc2中的网站共享设置
Step5:重启IIS Web服务使配置生效
创建NLB集群
Step1:分别在win08r2pc1和win08r2pc2中安装网络负责均衡功能。
注意:每一台需要加入到集群中的服务器都需要安装NLB功能模块。
打开服务器管理器 –> 功能 –> 添加功能 –> 网络负载均衡
Step2:在win08r2pc1中新建集群
开始 –> 管理工具 –> 网络负载平均管理器 –> 右击网络负载平均群集 –> 新建群集 –> 输入主机 –> 点击连接 –> 选择int1 –> 下一步
其中优先级作为集群中主机的唯一标识符HostID,每一台主机只能有唯一的一个优先级。
Step3:设置虚拟IP:192.168.1.8
Step4:选择单播的集群模式
集群的操作模式:
- 单播模式:NLB集群中的每一台服务器中的MAC地址,都会被替换成同一个集群MAC地址。每一台服务器都会通过集群MAC地址来接收连接到Web Farm的请求。
- 多播模式:多播的数据包会同时的传送到多台服务器中,这些计算机属于同一个多播组,它们拥有一个共同的多播MAC地址。
Step5:点击完成,使用默认的端口规则
Step6:等待NLB将win08r2pc1聚合到集群中
Step7:将win08r2pc2添加到NLB集群中
在NLB管理器中右击192.168.1.8 –> 选择添加主机到集群 –> 在主机处填入win08r2pc2的IP地址或者Hostname –>选择网卡int1 –> 点击下一步
优先级默认为2
Step8:等待win08r2pc2聚合完成。
Step9:在win7pc1中访问http://www.neishida.com
测试NLB是否正常运行
注意:如果出现了500 内部错误的话可以尝试Run –> iisreset
来重启IIS Web服务。
NLB的高级管理
编辑端口规则
集群IP地址:选择适用于此规则的集群IP地址。默认为所有集群IP地址都应用此规则。
端口范围:此端口规则所涵盖的端口范围。
筛选模式:
- 多个主机:表示集群中所有的服务器都会处理进入集群的网络请求,共同来提供网络负载均衡和排错功能。集群中每一台服务器的负载比重默认都是一致的。我们也可以通过右击服务器名称 –> 主机属性 –> 端口规则选项卡 –> 编辑来为每一台服务器设定不同的负载比重。
- 单一主机:表示此规则有关的流量都交由单一的服务器来处理。
- 禁用此端口范围:所有与此端口规则相关的流量都会被NLB集群阻挡。