Windows Server安装IIS并发布静态网站
先准备一个独立的测试站点
适用于带桌面体验的 Windows Server 2022/2025,使用管理员账户操作。本文建立名为 BaoLeStatic 的静态站点,只包含 HTML 文件;PHP、ASP.NET 等应用还需各自的运行环境。示例使用 8080 端口,操作前确认它未被现有站点或其他程序占用。已有业务服务器应先记录现有站点和绑定。
安装 IIS 与静态内容功能
打开“服务器管理器 → 管理 → 添加角色和功能”,选择“基于角色或基于功能的安装”和当前服务器。勾选“Web 服务器(IIS)”,接受提示添加管理工具。在角色服务中确认“常见 HTTP 功能”下有“静态内容”和“默认文档”,并保留 IIS 管理控制台。完成安装;若向导要求重启,安排重启后继续。不同系统语言的菜单文字可能略有差异。
也可以改用管理员 PowerShell 安装默认 Web 角色和管理工具:
Install-WindowsFeature Web-Server -IncludeManagementTools
检查返回结果中的 Success 是否为 True,再从服务器管理器“工具”打开“Internet Information Services(IIS)管理器”。
把页面、应用池和目录权限连起来
- 创建目录
C:\Sites\BaoLeStatic。使用文本编辑器将下面内容保存为 UTF-8 编码的index.html;在资源管理器中显示文件扩展名,确认文件没有变成 index.html.txt。
<!doctype html>
<html lang="zh-CN">
<head><meta charset="utf-8"><title>静态站点验证</title></head>
<body><h1>BaoLeStatic 已部署</h1></body>
</html>
- 在“应用程序池”中添加 BaoLeStatic,静态站点的“.NET CLR 版本”选“无托管代码”。打开此应用池的“高级设置”,确认“标识”为 ApplicationPoolIdentity。
- 右键“网站 → 添加网站”,名称填 BaoLeStatic,选择同名应用池,物理路径指向上述目录。绑定类型选 http,IP 地址选“全部未分配”,端口填 8080,主机名暂时留空。确认无重复绑定后启动站点。
- 选中该站点,打开“身份验证”,启用“匿名身份验证”,点“编辑”并选择“应用程序池标识”。这样读取文件的身份就与接下来授权的账户一致。
- 打开站点目录“属性 → 安全 → 编辑 → 添加”,把“位置”选为本机,输入
IIS AppPool\BaoLeStatic并检查名称,仅授予“读取和执行”“列出文件夹内容”“读取”。静态页面不需要修改或完全控制权限。 - 回到站点“默认文档”,确认功能已启用且列表包含 index.html;缺少时添加该文件名。
账户检查名称失败时,先确认应用池已创建、名称拼写正确且查找位置是本机。应用池虚拟账户不会像普通账户一样出现在本地用户列表中;只给管理员账户授予目录权限,也不能代替网站读取身份的授权。
按访问范围验收
先在服务器本机访问 http://127.0.0.1:8080/,应看到“BaoLeStatic 已部署”。用浏览器开发者工具检查主文档返回 200,不能只以 IIS 欢迎页出现作为新站点成功的依据。若直接请求 index.html 正常而根路径失败,优先检查默认文档,不必重新安装 IIS。
本机通过后,再按实际需要在 Windows 防火墙和服务器外围访问规则中放行 TCP 8080;测试阶段可限制为自己的来源 IP。使用 NAT 的环境还要核对端口映射。从外部客户端访问服务器对应地址与端口,页面内容应相同。
| 现象 | 优先检查 |
|---|---|
| 403.14 | 默认文档是否启用、文件名和目录是否正确;无需为首页开启目录浏览。 |
| 401.3 | 匿名身份是否按上文设置,目录权限是否授予了同一个应用池账户。 |
| 显示其他站点 | 访问端口、站点绑定和物理路径是否一致。 |
| 本机正常、外部超时 | 依次检查系统防火墙、外围端口规则及 NAT 映射。 |
需要回退时,先停止新站点;确认无其他用途后删除该站点和独立应用池,只撤销本次新增的端口规则。保留页面文件以便检查,不要卸载其他业务正在使用的 IIS 角色。