IIS Web服务器的Web Farm
这里利用下图的环境建立一个由IIS Web服务器所组成的Web Farm,架设其网址为www.itchenyi.com。我们将直接在图中两台IIS Web服务器上启用Windows NLB,NLB操作模式采用单播模式。
Web Farm
的软硬件需求
要搭建以上环境的话,其软硬件配置需匹配下诉要求(如非生产环境,建议使用Microsoft的Hyper-V所提供的虚拟机来测试)
1
、IIS Web
服务器Web1
与Web2:这两台组成Web Farm的服务器都是Windows Server 2008R2 Enterprise,且将安装Web服务器IIS角色,同时我们要创建一个NLB群集,并将这两台服务器加入此群集。这两台服务器各有两块网卡,一块连接
网络
1、一块连接
网络
2,其中只有
网卡
1启用Windows NLB,因此
网卡
1除 了原有的固定IP地址(192.168.1.1、192.168.1.2)之外,它们还有一个共同的群集IP地址(192.168.1.254)并通过这 个群集IP地址来接收由测试计算机Win-XP发来的上网请求(http://www.itchenyi.com/)。
2
、文件服务器FileServer:这台Windows Server 2003服务器用来存储Web服务器的网页内容,也就是两台Web服务器的主目录都是在这台文件服务器的相同文件夹,两台Web服务器也应该要使用相同的设置,而这些共享设置也是被存储在这台文件服务器上。
提示:
由于这里采用Web Farm的设置,因此将测试环境简化为仅采用一台文件服务器,所以网页内容与共享设置并没有容错功能,故此可以架设多台文件服务器利用DFS复制来同步网页内容与共享设置,便以提供容错功能。
DNS
服务器:依旧使用Windows Sever 2003服务器来解析Web Farm网址www.itchenyi.com的IP地址。
测试计算机WIN-XP:这里我仍沿用我的习惯,用XP测试www.itchenyi.com是否可以正常连接Web Farm,提示、测试计算机和DNS服务器可以是同一台计算机,对于测试来说没有任何影响。
准备网络环境与计算机
这里将列出整个搭建Web Farm环境的过程,以供大家参考。
1、将DNS1与WIN-XP的网卡连接到网络1,Web1与Web2的网卡1连接到网络1,网卡2连接到网络2,FileServer的网卡连接网络2。若使用Windows Server 2008R2 Hyper-V虚拟机的话,新建2个虚拟网络即可。
2、更改两台Web服务器的两块网卡名称,以便于识别,如下图。
提示:如果你是通过虚拟机复制操作系统的话,需要在计算机上运行Sysprep.exe程序更改其SID。
3、如前面拓扑图所示,设置IP地址、子网掩码、首选DNS。
4、暂时关闭所有测试环境中的防火墙。
DNS
服务器设置(如使用WIN 2003
需插入光盘)
新建区域|
添加A
记录(省略无关紧要步骤)
测试DNS
是否正常提供解析
提示:
虽然成功解析到Web Farm网站的群集IP地址,但是还没有新建群集,也没设置群集IP地址,因此会出现无法连接的信息,如果群集和群集IP地址都建立好了。仍发送icmp包,那么大有可能是因为win server 2008的防火墙未关闭。
文件服务器的设置
这台文件服务器用来存储Web服务器的共享设置,与共享网页内容,需先在本地安全数据库新建一个用户账户,以便于两台Web 服务器可以利用这个账户连接文件服务器。
提示:若此文件服务器有加入Active Directory 域的话,也可以使用域账户。
将webuser用户加入到WebFiles文件权限里
接着在此文件内新建两个子文件夹,一个用来存储共享的配置,一个用来存储共享网页(网站的主目录),架设文件名吻别是Configurations与Contents,如下图
Web
服务器Web1
的设置。
我们将在Web1上安装Web服务器IIS角色,同时假设网页为使用ASP.NET编写。因此还需要安装ASP.NET角色。
接下来新建一个测试用的首页,其文件名为default.aspx,却内容如下,将此文件放到网站默认的主目录%SystemDrive%\inetpub\wwwroot之下。
<b>客户端的IP地址是:</b>
<%Response.Write(Request.ServerVariables("remote_addr"))%><br>
<b>Web Server的IP地址是:</b>
<%Response.Write(Request.ServerVariables("local_addr"))%>
建议更改网站读取默认文件的优先级,以便网站优先读取default.aspx,如图:
接着我们客户机上利用浏览器来测试是否可以正常连接网站。如下图,为成功连接的界面。图中我们直接利用Web1的固定IP地址连接Web,因为还没有启用Windows NLB。无法使用群集IP地址连接。
Web
服务器Web2
的设置
Web2的设置大致与Web1设置相同,以下仅列出摘要:
1、在Web2上安装Web服务器(IIS)角色与ASP.NET角色服务。
2、
不需要新建default.aspx、也
不需要将default.aspx复制到Web2的主目录。
3、直接测试,如下
共享网页与共享的配置
接下来我们要让两个网站使用存储在文件服务器FileServer内的网页与共享配置。
Web1共享网页的配置。
我们将以Web1的网页来当作两个网站的共享网页,因此先将Web1主目录中的测试首页default.aspx。通过网络复制到文件服务器FileServer的共享文件夹\\IP\Webfiles\Contents内。
注意:
在Windows Server 2008R2内启用了
网络发现功能后,可能也发现不了文件服务器,其可能的原因是
网络发现功能又被自动的关闭了,其可能原因是一下四个服务没有启动:DNS Client、Function Discovery Resource Publication、SSDP Discovery、UPnP Device Host。
接下来要将Web1的主目录制定到\\IP\WebFiles\Contents共享文件夹,并且利用新建在文件服务器FileServer内的本地用户账户webuser来连接此共享文件夹,且在Web1上也必须新建一个相同名与密码的用户账户,(需取消选择
用户下次登录时更改密码、改选择
密码永不过期),且必须将其加入到IIS_IUSRS组内,如下图
将Web1主目录制定到\\IP\WebFiles\Contents共享文件夹的步骤为:
1、单击Default Web Site右边的基本设置
2、如下图,在物理路径处输入\\IP\WebFiles\Contents、单击连接为。
3、如下图【选择
特定用户→单机设置→输入用来连接的用户名webuser与密码→确定】
4、单击下图中的测试设置,测试是否可以正常连接上述共享文件夹,
完成后,用客户端访问测试一番(应先将浏览器的缓存清楚)此时应该可以正常看到default.aspx的网页。
提示:
如果网站因故不正常或安全设置有异动的话,则你可能需要针对网站的应用程序池执行
回收操作,以便让网站恢复正常或取得最新的安全设置值,举例来说,Default Web Site的应用程序池为DefaultAppPool,若要针对此池来执行回收操作,可如下图所示。。。。
Web1
的共享的配置
我们将以Web1的设置来当作两个Web服务器的共享设置,因此请先将Web1的设置和密钥导出到\\IP\WebFiles\Configurations,然后再指定Web1来使用这份位于\\IP\WebFiles\Configurations的设置。
1、将Web1的设置导出、存储到文件服务器上,双击Web1服务器的共享的配置
2、单击下图中右边的
导出配置...在图中的物理路径输入文件服务器的路径→单击连接为→输入用户名webuser和密码→单击确定。
3、如下图【设置用来保护加密密钥的密码→单击确定→在前图中单击确定】密码必须至少为8个字符,且需包含数字、特殊符号、英文大小写字母【需匹配服务器的密码复杂性】。
4、接着启用Web1的共享的配置功能:【如下图选择启用共享的配置→在
物理路径中输入存储共享的配置的路径→输入有权限连接此共享文件夹的用户名webuser与密码→单击应用→输入前面设置的密钥密码→确定】。
5、确定后会显示Web1的现有加密密钥会被备份到本地计算机内用来存储的目录中(%Systemroot%\system32\inetsrv\config)。
Web2
共享网页的设置
我们要将Web2的主目录制定到文件服务器FileServer的共享文件夹中,并利用新建在文件服务器内的本地用户连接此共享文件夹。同样也要在Web2上新建一个相同名称的账户及密码,设置密码永不过期,且加入到IIS_IUSRS组内。
将Web2的主目录制定到文件服务器的步骤与web1完全相同,这里不再重复,
完成后,可到测试计算机XP上利用http://192.168.1.2/来测试,此时应该可以正常看到default.aspx的网页,如图。
Web2
的共享的配置
现在我们要让Web2来使用位于文件服务器上的共享配置,步骤如下:
1、双击Web2界面中的共享的配置。(可参照前面的步骤)
2、选择启用共享的配置→在物理路径中输入共享配置的路径→输入有权连接的用户webuser和密码→单机应用→输入前面设置的加密的密钥密码→确定。
到这里两台Web服务器的共享均完成了!等时间空了。会将NLB群集的相关设置也发上来