在 Windows Server 2022 上部署网站,最常用且推荐的方式是使用 IIS (Internet Information Services)。以下是完整的部署流程,涵盖从安装到配置、发布和安全的步骤:
✅ 一、安装 IIS 角色
方法 1:通过图形界面(Server Manager)
- 打开 服务器管理器(Server Manager)。
- 点击 “添加角色和功能”。
- 选择 “基于角色或基于功能的安装” → 下一步。
- 选择当前服务器 → 下一步。
- 勾选 “Web 服务器 (IIS)” → 展开后确保以下子功能被选中(根据需求):
- Web 管理工具(如 IIS 管理器)
- ASP.NET 4.8(若使用 .NET Framework 应用)
- CGI(可选,用于 PHP 等脚本)
- FTP 服务器(如需 FTP 上传)
- 静态内容、默认文档、目录浏览等基础组件
- 点击“下一步”→“安装”。
💡 提示:也可通过 PowerShell 快速安装:
Install-WindowsFeature -Name Web-Server, Web-Asp-Net45, Web-Common-Http, Web-Static-Content, Web-Default-Doc, Web-Dir-Browsing, Web-Http-Errors, Web-App-Init, Web-Mgmt-Console -IncludeManagementTools
✅ 二、准备网站文件
将你的网站代码(如 HTML/CSS/JS、ASP.NET、Node.js、PHP 等)复制到服务器指定目录,例如:
C:inetpubwwwrootMyWebsite
或自定义路径(如 D:SitesMyApp),需确保 IIS_IUSRS 组有读取权限。
✅ 三、创建网站并绑定
方法 1:使用 IIS 管理器
- 打开 IIS 管理器(运行
inetmgr)。 - 右键 “网站” → “添加网站”。
- 填写:
- 站点名称:如
MyWebsite - 物理路径:指向你的网站文件夹
- 绑定设置:
- 类型:
http或https - IP 地址:
所有未分配或指定 IP - 端口:默认
80(HTTP)或443(HTTPS) - 主机名(可选):如
www.example.com
- 类型:
- 站点名称:如
- 点击 “确定”。
方法 2:使用 PowerShell
New-Website -Name "MyWebsite" -PhysicalPath "C:inetpubwwwrootMyWebsite" -BindingInformation "*:80:www.example.com"
✅ 四、配置应用程序池与运行时环境
1. 检查/创建应用程序池
- 在 IIS 中展开 “应用程序池”。
- 确保对应站点使用的是正确的池(如
DefaultAppPool或新建一个)。 - 双击该池 → 设置:
- .NET CLR 版本:无托管代码(纯静态)、v4.0(ASP.NET 4.x)或 v2.0(旧版)。
- 托管管道模式:经典或集成(通常选“集成”)。
- 启动模式:自动。
2. 安装依赖(按需)
| 技术 | 安装方式 |
|---|---|
| PHP | 下载 phpstudy 或手动安装 Windows PHP + 配置 php-cgi.exe 与 IIS 连接 |
| Node.js | 安装 Node.js → 用 iisnode 模块绑定(iisnode 官网) |
| Python | 安装 Python → 使用 wfastcgi 或 mod_wsgi(需额外模块) |
| .NET Core | 安装 .NET 6/7/8 SDK/Runtime,并在 IIS 中启用 .NET Core Module |
📌 对于 .NET Core 应用,需在
launchSettings.json中设置applicationUrl,并在 IIS 中通过web.config配置aspNetCore模块。
✅ 五、配置防火墙与 DNS
1. 开放端口(防火墙)
# 允许 HTTP (80)
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow
# 允许 HTTPS (443)
New-NetFirewallRule -DisplayName "Allow HTTPS" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow
2. 域名解析
- 在 DNS 服务商处将域名(如
example.com)的 A 记录指向服务器公网 IP。 - 若内网测试,可修改本地
hosts文件:192.168.1.100 www.example.com
✅ 六、(可选)启用 HTTPS(SSL 证书)
- 获取 SSL 证书(Let’s Encrypt、商业 CA 或自签名)。
- 在 IIS 中:
- 点击左侧 “服务器” → 双击 “服务器证书”。
- 导入证书 → 完成。
- 回到 “网站” → 右键你的站点 → “编辑绑定” → 添加
https绑定,选择证书。 - 强制重定向 HTTP → HTTPS(可选):
- 安装 URL Rewrite 模块(下载链接)。
- 在站点 → “URL 重写” → 添加规则:
<rule name="Force HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule>
✅ 七、测试与监控
- 浏览器访问:
http://your-server-ip或https://your-domain.com - 检查事件查看器(Event Viewer)→ Windows 日志 → 系统/Application,排查错误。
- 使用 Performance Monitor 或 Resource Monitor 监控资源。
🔒 安全建议(生产环境必做)
| 项目 | 操作 |
|---|---|
| 最小权限 | 网站目录仅授予 IIS_IUSRS 和 Users 读取权限;禁止写权限(除非必要) |
| 关闭目录浏览 | 在站点 → “目录浏览” → 禁用 |
| 隐藏错误详情 | 在 web.config 中设置 <customErrors mode="On" /> |
| 定期更新 | 启用 Windows Update + 手动更新 IIS/.NET/依赖组件 |
| 备份 | 使用 appcmd backup 或第三方工具定期备份站点配置与数据 |
需要我根据你的具体技术栈(如 ASP.NET Core、PHP、Node.js)提供定制化部署脚本或 web.config 示例吗?欢迎补充细节 😊
CLOUD云计算