在 Windows Server 2022 上部署网站,最常用且推荐的方式是使用 IIS (Internet Information Services)。以下是完整的部署流程,涵盖从环境搭建到上线的各个环节:
一、安装 IIS 角色
- 打开 服务器管理器(Server Manager)
- 点击 “添加角色和功能”
- 选择 “基于角色或基于功能的安装” → 下一步
- 选择当前服务器 → 下一步
- 在“服务器角色”中勾选:
- ✅ Web 服务器 (IIS)
- (可选但推荐)✅ ASP.NET 4.8 / .NET Framework 功能(根据网站技术栈选择)
- ✅ 管理工具 → 确保勾选 IIS 管理控制台
- 点击下一步,确认组件,点击 安装
💡 安装完成后,可通过
iisreset命令重启 IIS 服务验证状态。
二、准备网站文件
- 将你的网站代码(如 ASP.NET、PHP、Node.js + Express、静态 HTML 等)上传至服务器。
- 常见目录建议:
C:inetpubwwwrootYourSiteName - 确保有读写权限(见下文权限配置)。
三、创建网站并绑定
方法 A:使用 IIS 管理器(图形界面)
- 打开 IIS 管理器(开始菜单搜索 "IIS")
- 左侧连接树展开 → 右键 网站 → 添加网站
- 填写信息:
- 站点名称:如
MyWebsite - 物理路径:指向你的网站文件夹(如
C:inetpubwwwrootMySite) - 绑定设置:
- 类型:
http或https - IP 地址:
所有未分配或指定服务器 IP - 端口:默认
80(HTTP)或443(HTTPS) - 主机名(可选):如
www.example.com
- 类型:
- 站点名称:如
- 点击 确定
方法 B:使用 PowerShell(自动化部署)
New-WebSite -Name "MyWebsite" -PhysicalPath "C:inetpubwwwrootMySite" -BindingInformation "*:80:example.com"
四、配置应用程序池与运行环境
- 在 IIS 管理器中,找到刚创建的站点 → 右侧操作面板点击 “高级设置”
- 检查 应用程序池:
- 默认使用
.NET CLR Version为 v4.0 的应用池(适用于 .NET Framework 应用) - 若为 Node.js/Python 等,需创建新应用池或使用现有池,并设置对应运行时
- 默认使用
- 对于非 .NET 应用(如 PHP、Node.js):
- 安装对应模块(如 PHP for Windows、Node.js)
- 配置 handler mapping 或反向X_X(如用 Nginx 或 IIS ARR 转发请求)
🔧 示例:PHP 配置
下载 PHP 7.x/8.x for Windows,解压到C:php,在 IIS 中添加 FastCGI 处理器,映射.php扩展。
五、设置目录权限(关键!)
网站目录需允许 IIS 用户读取/执行:
- 右键网站文件夹 → 属性 → 安全
- 添加用户组:
IIS_IUSRS(默认存在)- 若使用自定义身份验证,可添加
IUSR和IIS AppPoolYourAppPoolName
- 赋予权限:
- 读取和执行
- 列出文件夹内容
- 读取
- 若需写日志/上传文件,额外添加 修改 权限
六、防火墙开放端口
- 打开 Windows Defender 防火墙 → 高级设置
- 新建入站规则:
- 类型:端口
- 协议:TCP
- 特定本地端口:80(HTTP)或 443(HTTPS)
- 作用域:任意 IP 或限定范围
- 操作:允许连接
- 命名规则如
Allow HTTP Web Traffic
✅ 也可通过 PowerShell 快速开启:
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
七、测试访问
- 本机测试:浏览器访问
http://localhost - 局域网测试:访问
http://<服务器IP>或http://<主机名> - 网络测试:确保公网 IP 可达,路由器/NAT 已转发端口
八、(可选)启用 HTTPS(SSL/TLS)
- 获取证书(自签名或 Let’s Encrypt)
- 在 IIS 中选择站点 → 绑定 → 添加
https绑定 - 选择证书 → 保存
- 强制重定向 HTTP → HTTPS(通过 URL Rewrite 模块)
🌐 推荐使用 Win-acme 自动申请 Let’s Encrypt 证书。
九、监控与维护建议
- 启用 IIS 日志(默认位于
%SystemDrive%inetpublogsLogFiles) - 配置 事件查看器 中的 Application 和 System 日志
- 定期备份网站文件和数据库
- 安装防病毒软件并排除网站目录扫描
常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 404 Not Found | 路径错误 / 缺少 index 文件 | 检查物理路径;确认默认文档含 index.html 或 default.aspx |
| 500 Internal Error | 代码异常 / 权限不足 | 查看 IIS 详细错误页;检查事件查看器 |
| 无法访问网络 | 防火墙 / 路由器未放行 | 检查防火墙规则 + 公网 IP 端口映射 |
| 页面显示乱码 | 编码不一致 | 确保网页声明 <meta charset="UTF-8"> |
需要我针对具体技术栈(如 ASP.NET Core、Node.js、PHP、WordPress 等)提供定制化部署步骤吗?欢迎告诉我你的网站类型 😊
CLOUD云枢