IIS服务配置多站点
约 700 字大约 2 分钟
2026-08-29
在 Windows 服务器上通过 IIS 托管多个网站,原理与 Nginx 类似:通过绑定的主机名区分不同站点。本文以 Windows Server 2022 为例,演示托管两个站点。
前提
- 已远程连接 Windows 实例。
- 两个域名已解析到实例公网 IP;境内节点需完成备案并通过域名白名单,安全组放行 TCP 80。
配置步骤
安装 Web 服务器(IIS)角色
打开服务器管理器 → 添加角色和功能 → 服务器角色页勾选 Web 服务器(IIS),按向导默认完成安装。
准备站点目录
分别创建两个目录,各放一个内容不同的
index.html,如C:\www\sitea\、C:\www\siteb\。添加第一个网站
- 打开工具 > Internet Information Services(IIS)管理器。
- 左侧右键单击网站 → 添加网站。
- 网站名称填
sitea,物理路径选C:\www\sitea。 - 绑定:类型 HTTP,IP 地址全部未分配,端口 80,主机名填
www.a.com,单击确定。 - 按同样方法添加
siteb,主机名填www.b.com,端口同为 80。
本地验证
在本地电脑的
C:\Windows\System32\drivers\etc\hosts(需管理员权限编辑,域名未解析时)添加两行测试解析:<实例公网IP> www.a.com <实例公网IP> www.b.com浏览器分别访问两个域名,应看到各自的页面。正式使用前记得删除 hosts 测试行、把域名解析到实例 IP。
同端口靠"主机名"区分
多个网站可以共用 80 端口,IIS(与 Nginx 一样)根据请求里的 Host 头匹配主机名绑定来分发。只有没有域名时才使用不同端口(如 80、8080)区分站点。
常见问题
访问两个域名都显示同一个网站?
网站的绑定里没有填主机名,或只填了带 www / 不带 www 的其中一种。双击站点 → 右侧绑定 → 编辑,把两种形式都加上(如 a.com 与 www.a.com)。
访问报 503 Service Unavailable?
站点对应的应用程序池已停止:IIS 左侧应用程序池中右键启动;若反复停止,多为 .NET 版本与程序不匹配或进程崩溃,查看应用程序池的"高级设置 → 标识"与事件日志(参见Windows服务器系统日志)。
404 找不到页面?
确认物理路径与实际目录一致、目录下存在默认文档(index.html);默认文档可在站点 默认文档 功能中添加。
外网仍访问不了?
检查 Windows 防火墙是否放行 80 端口,参见Windows系统防火墙策略配置指南;再确认安全组入方向已放行 TCP 80。
