不少团队的后端是ASP.NET,官网或静态页面也习惯放在IIS上。哪天要搬到云上,阿里云是常见的选择。这篇文章以一个企业官网为例,走一遍在阿里云ECS上部署IIS的过程,并标出几个容易绕弯路的地方。

为什么用阿里云跑IIS
IIS是Windows Server自带的Web服务器,和系统集成得紧,跑.NET应用比较省心。阿里云ECS提供多个版本的Windows Server镜像,配置可以按需调整,业务增长后能扩云盘,也能用快照做备份。对中小团队来说,最直接的好处是不用自己采购机器、管机房,精力可以放在业务上。
动手前先确认三件事
- 系统版本:Windows Server 2016、2019、2022都能用。新项目建议直接选较新的版本,支持周期更长。
- 域名和备案:服务器在中国大陆的话,要通过域名以80或443端口对外提供访问,就得先完成ICP备案。备案需要一些时间,最好早点办。
- 运行环境:确认项目用的.NET版本,先在本地或测试机上把应用跑通,免得上云之后才发现依赖缺失。
创建Windows实例
进入阿里云控制台的云服务器ECS页面,先选离用户近的地域,再选Windows Server镜像。配置按并发量估算,没有把握的话可以从2核4GB起步,流量上来后再升配。网络上选专有网络,分配公网IP或绑定EIP。登录密码要存进密码管理工具或其他安全的地方,不要写进项目代码,也别贴在共享文档里。密码一旦泄露,服务器就等于敞开了门。
安装IIS
远程桌面登上实例后,打开服务器管理器,用“添加角色和功能”向导勾选“Web服务器(IIS)”,一路下一步即可。如果要批量装好几台,直接用PowerShell执行安装命令更省事,参数可以复用。装完后,在服务器本机的浏览器里访问地址,能看到IIS默认欢迎页,说明服务已经起来了。不过这只能证明本机服务正常,外网能不能访问,还要看下一步的端口设置。
配置安全组和防火墙
这一步最容易漏。在ECS控制台的安全组里,需要为入方向放行80端口(HTTP)和443端口(HTTPS)。很多人只开了远程桌面的3389端口,结果外部访问网站一直超时,本机却正常,排查时容易在IIS里转上半天。系统自带的Windows防火墙也要确认允许HTTP和HTTPS入站,两边都要对上。另外,远程桌面的来源IP最好限制在办公网段内,不要对全网开放,减少被暴力破解的风险。
部署站点
在IIS管理器里新建网站,指定物理路径,再把项目文件传进去。传输方式可以是远程桌面直接复制,也可以走共享文件夹,或借阿里云OSS中转。绑定域名、填好主机名之后,如果是ASP.NET项目,还要检查应用程序池的.NET CLR版本是否与项目一致,托管管道模式一般选集成模式。版本对不上时,页面常见的表现是报错或者空白,这里值得多看一眼。
一个迁移的例子
某做工业零部件的中型企业,官网原先放在本地服务器上,断网和硬件老化都出过问题。迁移时,技术负责人先在阿里云上建了测试实例,按上面的步骤装好IIS,用测试域名把所有页面过了一遍。之后为站点配置HTTPS证书,发布前用快照备份系统盘,再切换DNS。切换后官网稳定了不少,运维也不必半夜赶去机房。这个例子里,关键是每一步都可以复现,出了问题也好回退。
上线后要持续做的事
- 定期安装Windows补丁,IIS相关的安全公告也要留意,别等出了事才想起来。
- 开启IIS请求日志。访问异常和恶意扫描,靠它才能看清楚。
- 流量波动大的站点,可以考虑负载均衡和弹性伸缩。这类方案会增加架构复杂度,先确认峰值确实需要,再上马。
- 网站文件和数据库分开存放,定期备份,并抽样验证备份能否真正恢复。没验证过的备份,等同于没有备份。
整体流程就是建实例、装角色、放行端口、部署站点。最容易卡住的是安全组和应用程序池,这两处确认好,上线通常会顺利很多。