惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
WordPress大学
WordPress大学
小众软件
小众软件
IT之家
IT之家
腾讯CDC
月光博客
月光博客
量子位
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - robinli

SEO:谷歌浏览器提示:您要访问的网站包含恶意软件(解决方案) 关闭防病毒antimalware Service Executa SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 已解决:无法连接到WMI提供程序。你没有权限或者该服务器无访问··· window系统下升级node和npm SQLSERVER:误删Windows登录用户而sa禁用,导致无法使用Windows身份验证解决方案 更新依赖mvn dependency:resolve 服务器出现大批量登录审核失败/NtLmSsp攻击 sqlserver2008数据库登陆名备份迁移方法 记一次 IIS 站点配置文件备份和还原,物理路径文件批量备份 SQL Server2019数据库备份与还原脚本,数据库可批量备份 FCKeditor编辑器IE11不显示的解决方法 vscode Vue格式化HTML标签换行问题 WIN10的IE错误代码inet_e_resource_not_found解决办法 远程桌面,身份验证错误:要求的函数不正确等解决办法 IIS 请求 超时设置 Redis设置密码重启后失效的解决方案 连接redis错误:ERR Client sent AUTH, but no password is set 关于阿里云专有网络搭建FTP服务器的深坑 电脑异常断电,IDEA崩溃 Winform 出现“Win已停止工作”解决方法 C# WinForm控件、自定义控件整理(大全) 出现“基础链接已关闭,无法链接到远程服务器"错误的解决办法
如何将多个大型站点从 IIS 7 迁移到 IIS 8.5?
robinli · 2023-11-04 · via 博客园 - robinli

2023-11-04 21:09  robinli  阅读(235)  评论()    收藏  举报

为实现负载平衡或者服务器迁移时,我们可能会使用多个 Web 服务器,也就会需要给多个 IIS配置同样的站点和应用程序池。根据需求一个一个重新建吗?当然不用!那得花费多少时间!我们只需要执行一些简单的命令即可在 IIS 上进行这些配置的导出导入~

当我们在 IIS7 或 IIS8.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:\apppools.xml

其中c:\apppools.xml为导出的IIS程序池配置文件,路径可以按需要更改;导出后,可以在指定的目录中看到该配置文件。

这个命令会将服务器上全部的IIS应用程序池都导出来,但有些我们是我们不需要的,要将他们删掉.比如:DefaultAppPool

可以使用文件编辑器打开导出的IIS应用程序池配置文件apppools.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:\apppools.xml

此处c:\apppools.xml路径改为拷贝至目标服务器上的路径

如果上面导出的配置文件中未删除DefaultAppPool,目标服务器中又有该程序池,导入就会报错。

删除对应重复的程序池配置文件即可,或者将目标服务器上的重复应用程序池删除在进行导入,站点配置导入是也是如此。

导入单个IIS应用程序池配置

2. 导入IIS站点配置

导入IIS站点配置

%windir%\system32\inetsrv\appcmd add site /in < c:\sites.xml

导入前要把重复的程序池和站点调整掉

 XML 导出/导入:它允许我将网站和应用程序池导出为 XML,然后将它们导入到新服务器上。效果很好:

出口

%windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml

%windir%\system32\inetsrv\appcmd 列出站点 /config /xml > c:\sites.xml

进口

%windir%\system32\inetsrv\appcmd add apppool /in < c:\apppools.xml

%windir%\system32\inetsrv\appcmd 添加站点 /in < c:\sites.xml

之后,只需要将旧服务器的文件通过 FTP 传输到新服务器 !

要记住的几件事:

  1. 目录结构 - 保持与旧服务器相同 - 然后无需调整 XML 文件
  2. HTTPS 证书 - 不要忘记导出它们
  3. 安全性 - 如果您为站点文件夹分配了任何特殊权限 - 请确保在新服务器上重新创建它们
  4. 额外的 IIS 模块 - 如 URL Rewrite - 逐项列出并安装它们
  5. 绑定 - 如果您有通配符,则无需担心,但如果您的站点绑定到 IP 地址 - 在 sites.XML 文件中使用搜索/替换来更新它。