为实现负载平衡或者服务器迁移时,我们可能会使用多个 Web 服务器,也就会需要给多个 IIS配置同样的站点和应用程序池。根据需求一个一个重新建吗?当然不用!那得花费多少时间!我们只需要执行一些简单的命令即可在 IIS 上进行这些配置的导出导入~
当我们在 IIS7 或 IIS7.5 上创建站点时,IIS 会为我们自动创建一个对应该站点唯一的应用程序池。所以,我们要导入网站信息,就必须先导入应用程序池信;下面将介绍使用 Windows 自带的 appcmd 命令对 IIS 站点和程序池的配置进行导入和导出实现 IIS 的站点迁移。
注:appcmd命令在C:\Windows\System32\inetsrv目录下,使用appcmd命令时,需要进入该目录,或者将该目录加入到Windows系统环境变量中。
目标服务器IIS环境创建
IIS应用程序池和站点导出
1. 导出IIS应用程序池配置(指定程序池或者所有程序池)
在Windows的DOS窗口执行以下命令进行IIS应用程序池导出
%windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\allpools.xml
其中c:\allpools.xml为导出的IIS程序池配置文件,路径可以按需要更改;导出后,可以在指定的目录中看到该配置文件。
这个命令会将服务器上全部的IIS应用程序池都导出来,但有些我们是我们不需要的,要将他们删掉.比如:DefaultAppPool
可以使用文件编辑器打开导出的IIS应用程序池配置文件allpools.xml,将其删除掉。
找到对应的DefaultAppPool程序池配置进行删除,以开头,对应该段结尾的内容。
2. 导出IIS站点配置(指定站点或者站点)
导出所有IIS站点
%windir%\system32\inetsrv\appcmd list site /config /xml > c:\sites.xml
同样,导出全部站点后,其中也可能会有我们不需要的站点,我们在导出的sites.xml中将其配置删除掉:Default Web Site
找到对应的Default Web Site站点配置进行删除,以开头,对应该段结尾的内容。
导出单个IIS站点
IIS应用程序池和站点导入
目标服务器当前只有Default Web Site的默认站点
1. 导入IIS应用程序池配置
先将上一步导出的IIS应用程序池和站点的配置文件拷贝至目标服务器中。
执行以下命令进行IIS应用程序池导入
%windir%\system32\inetsrv\appcmd add apppool /in < c:\allpools.xml
此处c:\allpools.xml路径改为拷贝至目标服务器上的路径
如果上面导出的配置文件中未删除DefaultAppPool,目标服务器中又有该程序池,导入就会报错。
删除对应重复的程序池配置文件即可,或者将目标服务器上的重复应用程序池删除在进行导入,站点配置导入是也是如此。
导入单个IIS应用程序池配置
2. 导入IIS站点配置
导入IIS站点配置
%windir%\system32\inetsrv\appcmd add site /in < c:\sites.xml
导入前要把重复的程序池和站点调整掉
最后
如果站点中存在https,请提前导入好所需的iis证书,之后进行指定