搭建网站服务跑在Windows系统,IIS是绕不开的组件。全称Internet Information Services,微软自研Web服务器,和.NET、ASP这套技术栈适配性最好。云服务器部署IIS大体流程和本地安装差别不大,额外需要配置安全组、防火墙,任意环节遗漏,外部网络无法访问站点。
装IIS本身不复杂,勾选的时候留个心
Windows Server 2012及更新版本,IIS统一在服务器管理器内安装。打开服务器管理器,仪表盘点击添加角色和功能,向导弹出直接点下一步。安装类型选择基于角色或基于功能的安装,选中目标服务器。

到服务器角色页面,勾选Web服务器(IIS)。首次安装,系统弹窗提示添加IIS管理控制台等配套组件,选择添加功能。
勾选完成不要直接下一步,角色服务页面仔细核对。默认只勾选基础静态内容服务,如果需要运行PHP、ASP.NET,手动勾选应用程序开发分类下CGI、ASP.NET相关组件。CGI组件如果漏选,后续PHP配置会卡住。不确定需求可以先跳过,后续随时补充安装。
安装结束,浏览器访问http://localhost,出现IIS蓝色欢迎页面,代表服务正常运行。习惯命令行操作,PowerShell执行Install-WindowsFeature Web-Server -IncludeManagementTools一键安装,省去向导点击步骤。
建站点之前,先把文件夹和权限理清楚
IIS安装自带默认站点,文件目录C:inetpubwwwroot。自建网站建议单独存放文件,不要放在系统盘,备份迁移更方便。例如D盘新建D:sitesmysite,网页文件放入该目录。
打开IIS管理器,左侧展开服务器节点,右键网站,添加网站。弹窗填写几项信息,网站名称自定义识别名,物理路径选定刚才创建的文件夹,绑定部分保持默认HTTP协议80端口,主机名留空或者填写域名。
权限是很容易忽略的环节。IIS默认依靠应用程序池标识读取网站文件,标识格式IIS AppPool你的应用程序池名。网站文件夹安全选项卡编辑权限,添加IIS AppPoolDefaultAppPool,授予读取和执行权限。网站存在文件上传、日志写入功能,额外增加修改、写入权限。
只部署单个网站,到这里基本配置完成。浏览器访问服务器公网IP,页面正常打开代表连通。一台服务器托管多个网站,依靠主机名区分。
多个站点共用80端口,靠主机名来分流
单台服务器承载多个网站,共用80端口属于常规方案。IIS给每个网站绑定独立主机名。举例test1.com、test2.com两个域名解析到服务器IP,IIS新建两个网站,分别填入对应主机名。
绑定逻辑:用户请求抵达服务器,IIS优先识别端口,端口一致时读取HTTP请求头Host字段,也就是访问域名,分配请求到对应网站。两个站点物理路径必须分开,各自存放网页文件。
测试阶段没有正式域名,本机hosts文件手动添加域名与服务器IP映射,执行ipconfig /flushdns刷新DNS缓存,浏览器即可访问测试域名。
HTTPS这块,绑定方式跟HTTP不太一样
部署HTTPS,证书是前置条件。可以申请Let‘s Encrypt免费证书,或者云厂商证书服务。拿到PFX格式证书文件,IIS管理器服务器节点找到服务器证书,导入证书,填写证书密码。
证书导入完成,选中目标网站,右侧操作栏点击绑定,协议选https,端口443,SSL证书下拉选择刚导入的证书。
使用PowerShellNew-WebBinding添加HTTPS绑定,后续还要执行Set-WebBinding关联证书,只创建绑定不指定证书,浏览器访问会提示无SSL证书。图形界面操作更简单,直接下拉选择证书即可。
防火墙配置同样不能忽略,443端口默认未开放,Windows防火墙手动放行。云服务器安全组增加443入站规则。两处防护任意一处没配置,外部无法建立连接。
安全加固,别等出了事再补
IIS默认配置仅满足基础运行,公网暴露需要多层防护。
首先清理服务器多余组件。IIS安装勾选过多角色服务,等于增加攻击入口。不需要的模块、功能,在服务器管理器IIS节点卸载,或者取消角色服务勾选。目录浏览默认关闭,不要手动开启,开启后访客能够浏览网站全部目录文件。
处理错误页面。IIS原生错误页面直接向访客展示详细报错,包含代码行、文件路径,这些信息会被攻击者利用。IIS管理器选中网站,双击错误页,关闭详细错误展示,替换为自定义友好页面。
配置请求限制。IIS请求筛选功能限制上传文件大小、文件类型,阻止伪装成图片的脚本文件上传。默认上传上限30MB,网站无大文件上传需求,调低该数值。IP地址和域限制功能,可把后台/admin路径访问限制到指定IP段,避免后台路径直接对公网开放。
出问题了怎么查,按这个顺序走
排查IIS故障优先查看日志。日志默认路径C:inetpublogsLogFiles,按日期分文件夹存储。最新日志记录每一条请求状态码,403代表权限异常,404路径错误,500属于应用内部报错。IIS管理器自带日志功能,直接读取日志文件排查效率更高。
日志信息不足,可以开启失败请求跟踪。该功能完整记录请求从进入IIS到返回结果每一步,记录模块处理耗时、报错信息。日志详细程度高于普通访问日志,排查疑难故障很有用。
500是IIS最常见报错,成因复杂。应用程序池崩溃、数据库连接失败、PHP进程异常,都会返回500错误。排查先打开事件查看器,Windows日志应用程序分类,查找ASP.NET或者PHP报错记录。事件查看器无记录,再查看IIS失败请求跟踪日志,定位对应模块与错误码。
端口占用是另一个常见故障。安装IIS之后再部署其他Web服务,80端口冲突会造成服务无法启动。netstat -ano | findstr :80查看占用80端口进程,PID为4一般是系统HTTP.sys,归属IIS或者其他系统服务。确认进程后,选择停止冲突服务或者修改IIS监听端口。
应用程序池回收策略会带来间歇性故障。IIS默认定时回收应用程序池,回收瞬间正在处理的请求中断。网站运行长时间任务,这种中断会造成请求失败。应用程序池高级设置,固定时间间隔设置为0关闭定时回收,改用内存最大值、请求数量触发回收,适合长时间运行业务。
云服务器上多一层要考虑的
阿里云、腾讯云Windows实例部署IIS,除IIS本身配置,安全组、远程桌面端口需要留意。安全组管控入站流量,开放80、443端口;3389远程桌面端口建议限制来源IP,不要全网开放。
公网IP计费模式需要关注。阿里云CDT计费,国内地域每月20GB免费公网流量,超出按量计费。网站图片多、访问量大,月底流量费用会增加。带宽选择固定带宽还是按流量计费,看访问量稳定性。流量波动大适合按量计费,稳定访问场景固定带宽更省心。
IIS上手门槛不高,但细节繁多。少勾选一个组件,后续就得重新安装;权限缺少一项,网站无法加载;安全组端口遗漏,外网无法访问。初次搭建IIS基本都会踩这些坑,处理过后就积累经验。