共享配置
介绍
Internet的出现已经改变了公司处理的业务及市场的方式。随着web新技术的出现,以及随web一同出现的顾客可访问性的增长,对应用程序的压力,如:可伸缩性、可用性、有效性以及可管理性,都正在日益上升。这些应用程序需要有能力提供很高的上线时间、高吞吐量
、高速的用户事物处理能力以及更好的投资回报价值,例如相比其他同类系统要有比较好的服务质量。
Web服务器场-服务器集群-已经成为了标准做法,以提供好的伸缩性、可用性以及分布负载的可管理性。这些特性是web服务器场和负载均衡背后的主要目标。使用web服务器场后,组织能够提供一个可伸缩性强的方式来增加基于用户的应用程序可访问性和资源访问。
服务器集群通过使用多个服务器分布负载来提供高可用性。集群也能够在用户数量急剧增加的情况下及给定时间内提供可伸缩性。最后,集群通过供给、宜用的web服务器场体系提供了比较好的管理体验。
概览
本篇文章定位在共享的中央化全局配置特性。这个特性帮助同质web场中同一个服务器组中的服务器共享同一个配置。通过使用UNC共享,任何集中化的配置文件都会被推送到不同的服务器,而不需要安装额外的工具或者编程。
本篇文章的第一部分描述了怎样通过IIS7管理界面来启用及使用共享配置特性。第二部分描述了如何通过命令行来启用及使用共享配置特性。
在这篇文章中:
先决条件
1. 集中化的配置 – 使用图形界面
2. 命令行方式
3. 备份当前applicationHost.config
4. 为共享配置相应权限的用户
5. 为集中化配置和内容创建UNC共享
6. 为集中化配置和内容的UNC共享配置权限
7. 重定向配置
8. 测试配置
本篇文章没有覆盖到的地方
很多方面能够促成一个成功的web服务器场环境,包括正确的支持、管理、访问性及可伸缩性等。
共享配置定位在web服务器场的多服务器之间的配置管理方面。有很多工具能够帮助管理多台服务器,拷贝内容、部署模块、同步应用程序包、设置第三方组件等等。这些内部不是本篇讲述的范围。
本篇只讲述多服务器之间的中央配置的维护。
而且,共享配置使服务器访问网络配置文件就像本地的配置文件一样。当在某台web服务器上更新配置后,更新也会体现到其他服务器。
要避免这些情况:比如安装只对某一台服务器能够识别的第三方模块或添加配置、属性等。否则,这些行为会危害到其他服务器。
域以及非域环境
有些管理员在域中部署web服务器集群,而其他则使用工作组方式部署。本篇同时讨论这2种情况的不同以及注意事项。在域中部署安装有IIS7的集群是比较推荐的,因为这样能够利用活动目录本身的安全性。
先决条件
你必须按照顺序完成以下步骤:
1. 在服务器上安装IIS7,web服务器是优先选择的
2. 确保能够访问第二台服务器,最好是一台文件服务器。这台文件服务器将会存放共享配置和基本内容。
3. 本篇的每个步骤都基于前一个步骤的完成情况下。顺序依次执行各个步骤。
4. 对于有些步骤,可以通过图形界面的多种方式来完成,只需做一次就行,除非特别指明的除外。
集中配置
IIS7的管理界面包括设置重定向配置、导出配置文件以及必要的机密密钥到指定路径。
通过界面导出文件和设置重定向配置:
1. 打开IIS管理器
2. 在树目录中,选择你想进行重定向配置的服务器
3. 双击Shared Configuration(共享配置)
a)
4. 在Actions面板中,点击Export Configuration…来导出配置文件到某个路径(如一个UNC共享)
a)
5. 在Export Configuration对话框中,输入你想导出到的一个共享路径。然后输入密钥来保护这些导出的配置。点击OK按钮来导出配置文件。
a)
6. 选择Enable shared configuration复选框来启用重定向配置
a)
7. 输入配置文件和密钥所在的路径,并且指定帐号信息,点击Connect As…
a)
8. 点击Apply按钮保存设置。在Shared Configuration对话框中,输入你刚才输入的用于保护配置文件的密码
a)
9. 点击OK完成设置重定向配置
以上的步骤描述了如何导出配置文件和启用中央化配置。你只需要导出一次配置。在每台服务器上执行步骤6到9来开启中央化配置。
使用界面方式的注释
在重定向配置中,导出的配置文件必须使用图形界面完成的。这是因为UI导出的和导入的项,比如用于保护的密码,是用特有的自定义格式机密的。
比如,如果你手工拷贝了administration.config和applicationHost.config文件到一个共享中,你就不能通过UI方式来设置重定向配置。这是因为导出的密钥是UI方式不同的格式。
命令行
纵观本篇其余部分,你必须使用命令行来运行一些命令。
用相应权限的权限运行命令:
1. 单击Start
2. 单击All Programs
3. 单击Accessories
4. 右键单击Command Prompt并且选择Run as administrator
5. 输入对话框的密码
备份当前的applicationHost.config文件
当尝试新特性或改变配置时,备份当前的applicationHost.config是个好习惯。
备份applicationHost.config文件:
1. 打开命令行
2. 导航到IIS7目录,默认是位于%WINDIR%\System32\InetSrv。配置文件位于InetSrv\Config目录。用AppCmd工具建立备份对象并且通过下面的命令来备份applicationHost.config:
a) cd /d %windir%\system32\inetsrv
b) appcmd add backup centralConfigBackup
c) 注释:AppCmd工具位于InetSrv目录,你必须在这个目录中访问这个工具,除非这个工具的路径已经加到了系统path变量中。
3. 为了确保备份对象,如applicationHost.config、smtp的元数据库或者其他非web服务器的设置,输入如下命令:
a) appcmd list backup
还原当前配置文件:
1. 打开命令行
2. 导航到IIS7所在目录,默认位于InetSrv目录。使用下面的命令来恢复备份对象:
a) cd /d %windir%\system32\inetsrv\
b) appcmd restore backup centralConfigBackup
为unc共享建立用户
在域环境中,为了使用AD,比如使用administrator帐号,又或者建立相应权限的帐号。这个帐号必须配置成具有访问UNC共享的权限。
在非域环境中,administrator帐号或者相应的帐号必须在所有的服务器上建立。用户名和密码必须是相同的。下列步骤就是用来建立这样一个用户帐号的。
建立一个能够读取共享的用户(非域环境):
1. 打开命令行
2. 在web服务器上(装有IIS7的前端服务器),建立一个叫ConfigUser1的帐号,密码为ConfigPass1,执行下列命令:
a) net user ConfigUser1 ConfigPass1 /add
3. 在文件服务器上(共享配置所在的服务器),建立同样的一个帐号:
a) net user ConfigUser1 ConfigPass1 /add
为中央化配置和内容创建UNC共享
所有服务器的UNC共享配置都会指向这个共享。
建立UNC共享:
1. 在文件服务器上,打开命令行
2. 导航到驱动器的根目录,执行下列命令来创建共享目录,确保将相应的帐号加入了这个目录(read/write):
a) md %SystemDrive%\centralconfig
b) net share centralconfig$=%SystemDrive%\centralconfig /grant:Users,Change
c) 注释:这个命令自动将当前用户加入到这个共享中,在非域环境中是自动授予change权限,可以按需更改。在域环境中,用户必须额外进行加入授予权限
3. 非域环境中:为了增加共享安全性,你需要替换、改变权限,使用创建的用户ConfigUser1
4. 域环境中:为了增加共享安全性,你需要用domain\user方式来替换、改变权限
注释:共享目录的权限,是根据用户的远程权限和在本地文件系统中的权限交集出来的。
为用户授予访问UNC共享的权限
你必须确保所使用的帐号有访问配置文件的权限。IIS7会使用这个帐号来访问UNC共享。当只用于读取配置时,授予只读权限是最好的。在这之后,IIS7再去读取配置文件时,它只是传递调用者的帐号上下文来调用:要么API,既管理工具所使用的帐号,要么是当前登录的用户帐号。
注释:ConfigUser1帐号-或相应的域帐号-为读取配置而建立的帐号,是与写配置使用不同帐号的。这些帐号对于写权限不是必须的。
授予用户访问UNC共享(域环境):
1. 如果UNC共享中,域帐号是所授权本地用户组的一部分,你可以略过接下来的步骤。然而,如果域帐号不是所授权本地用户组的一部分,你必须执行下列命令来授权
2. 在文件服务器上,打开命令行
3. 为了提供域帐号来读取UNC目录,执行下列命令:
a) icacls %SystemDrive%\centralconfig\ /grant domain\user:R
添加UNC用户(非域环境和域环境):
对于非域环境和域环境场景中,用户名必须包含登录批量工作配置。在win2008种这个不是一个默认设置;你必须手动添加到web服务器中
1. 点击Start, 点击Administrative Tools并且选择Local Security Policy
2. 在Local Policies下,选择User Rights Assignments
3. 双击Log on as a batch job并且加入你创建的UNC用户
重定向配置
介绍
既然已经完成了先前的步骤,web服务器是起作用的,并且前端web服务器应该能够通过localhost回送地址来host默认网站了。
现在你可以将配置移动到一个中央共享了。这个需要你指定一个文件作为主文件,并且保存到UNC共享中,以便于其他服务器使用。改变这个文件将会立刻更新所有服务器的配置。
存储配置到一个UNC共享中:
1. 在前端web服务器中,拷贝applicationHost.config和administration.config文件,从%windir%\system32\inetsrv\config目录中拷贝到后端的文件服务器。
2. 在前端服务器的配置目录中访问已有的redirection.config xml文件:
a) 使用Windows Explorer导航到%windir%\system32\inetsrv\config
b) 打开redirection.config文件。当web服务器配置后这个文件就存在了。可以通过查看这个文件来看这个特性是否被启用
3. 打开redirection.config文件。设置正确的服务器名称、帐号、密码
a) <configuration>
<configSections>
<section name="configurationRedirection" />
</configSections>
<configurationRedirection enabled="true" path="\\machinename\centralconfig$\" userName="ConfigUser1 or domain\user" password="ConfigPass1 or domainPassword" />
</configuration>
4. 保存redirection.config文件。你能再次访问站点了,只是这次的配置是保存在一个UNC共享中
测试配置
根据后端服务器所引用配置文件的方式,有两种关键场景,你能以两种方式通过前端服务器更新配置:
1. 你可以直接在UNC共享中修改applicationHost.config文件。完成后,这些更改就会立刻应用到所有web服务器中
2. 你可以添加第二个applicationHost.config到后端文件服务器,并且更改web服务器的redirection.config来引用这个新的配置路径。这个方法对于回滚操作来说很有用