IIS7站点批量迁移到另一台IIS7服务器

书香斋主  2018-01-05 14:15:26  阅读 662 次 评论 0 条
摘要:

在较大型网站系统中,为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池。那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows Server 2008)或IIS7.5(Windows Server 2008 R2)上来导出导入这些配置了。 当我们在IIS7或IIS7.5上创建站点时,IIS会为我们自动创建一个对应该站点的唯一的应用程序池。所以我们要导入网站信息,就必须先导入应用程序池信息。 在这

在较大型网站系统中,为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池。那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows Server 2008)或IIS7.5(Windows Server 2008 R2)上来导出导入这些配置了。 当我们在IIS7或IIS7.5上创建站点时,IIS会为我们自动创建一个对应该站点的唯一的应用程序池。所以我们要导入网站信息,就必须先导入应用程序池信息。 在这有两点需要特别说明: 在进行以下所有命令进行操作里,都需要在CMD窗口执行命令,而不能在Powershell窗口中。 %windir%实际上是Windows系统默认设置的一个环境变量,表示Windows系统的安装目录,如果你的系统安装在C盘,那么它就可能等于C:\Windows(如果系统安裝在D盘,则可能是D:\Windows,以此类推入。 一、应用程序池 1、批量导出 %windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml 导出的文件是一个xml,内容类似下面这样: 2、批量导入 %windir%\system32\inetsrv\appcmd add apppool /in < c:\apppools.xml 如果是操作完之后,发现少了一个两个的,需要单独导出其中一个应用程序池的话,可以用以下命令: 3、单个导出 %windir%\system32\inetsrv\appcmd list apppool “应用程序池名称” /config /xml > c:\myapppool.xml 4、单个导入 %windir%\system32\inetsrv\appcmd add apppool /in < c:\myapppool.xml 二、站点 %windir%\system32\inetsrv\appcmd list site /config /xml > c:\sites.xml
%windir%\system32\inetsrv\appcmd add site /in < c:\sites.xml 如果是操作完之后,发现少了一个两个的,需要单独导出其中一个站点的话,可以用以下命令: %windir%\system32\inetsrv\appcmd list site “站点名称” /config /xml > c:\mywebsite.xml 三、最简单有效(最没技术含量)的方法 上面说的通过cmd命令来导入导出应用程序池和站点配置,其实是在装B。基本上来说在负载平衡方案中使用的多台WEB服务器,站点配置完全一样,包括站点的物理路径都一样。也就是说目标IIS7服务器的网站目录与源IIS7服务器网站目录完全一致,那么在我们配置好一台Web服务器后,其实只需要将以下文件 %windir%/System32/inetsrv/config/applicationHost.config 文件内容类似下面这样:
拷贝到目标IIS7服务器的以下路径: %windir%/System32/inetsrv/config/ 这一个文件拷过去之后,目标Web服务器立马会自动生成所有站点以前站点对应的应用程序池。在拷贝之后依然可以对这个拷贝过来的文件进行批量修改操作。比如:批量添加和修改所绑定域名。 总结: IIS7服务器之间迁移是非常简单的,由于IIS7将所有配置都存在xml文件中,不再使用二进制的metabase来存储配置,这对于迁移一个有成百上千网站的Web服务器无疑提供了更多的手段和方法。
本文地址:http://blog.sxzcn.com/3409.html
版权声明:本文为原创文章,版权归 书香斋主 所有,欢迎分享本文,转载请保留出处!

评论已关闭!