走啊走
加油

如何在windows server 2022上部署网站?

服务器价格表

在 Windows Server 2022 上部署网站,最常用且推荐的方式是使用 IIS (Internet Information Services)。以下是完整的部署流程,涵盖从安装到配置、发布和安全的步骤:


✅ 一、安装 IIS 角色

方法 1:通过图形界面(Server Manager)

  1. 打开 服务器管理器(Server Manager)。
  2. 点击 “添加角色和功能”
  3. 选择 “基于角色或基于功能的安装” → 下一步。
  4. 选择当前服务器 → 下一步。
  5. 勾选 “Web 服务器 (IIS)” → 展开后确保以下子功能被选中(根据需求):
    • Web 管理工具(如 IIS 管理器)
    • ASP.NET 4.8(若使用 .NET Framework 应用)
    • CGI(可选,用于 PHP 等脚本)
    • FTP 服务器(如需 FTP 上传)
    • 静态内容、默认文档、目录浏览等基础组件
  6. 点击“下一步”→“安装”。

💡 提示:也可通过 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 管理器

  1. 打开 IIS 管理器(运行 inetmgr)。
  2. 右键 “网站”“添加网站”
  3. 填写:
    • 站点名称:如 MyWebsite
    • 物理路径:指向你的网站文件夹
    • 绑定设置
      • 类型:httphttps
      • IP 地址:所有未分配 或指定 IP
      • 端口:默认 80(HTTP)或 443(HTTPS)
      • 主机名(可选):如 www.example.com
  4. 点击 “确定”

方法 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 → 使用 wfastcgimod_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 证书)

  1. 获取 SSL 证书(Let’s Encrypt、商业 CA 或自签名)。
  2. 在 IIS 中:
    • 点击左侧 “服务器” → 双击 “服务器证书”
    • 导入证书 → 完成。
  3. 回到 “网站” → 右键你的站点 → “编辑绑定” → 添加 https 绑定,选择证书。
  4. 强制重定向 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-iphttps://your-domain.com
  • 检查事件查看器(Event Viewer)→ Windows 日志 → 系统/Application,排查错误。
  • 使用 Performance MonitorResource Monitor 监控资源。

🔒 安全建议(生产环境必做)

项目 操作
最小权限 网站目录仅授予 IIS_IUSRSUsers 读取权限;禁止写权限(除非必要)
关闭目录浏览 在站点 → “目录浏览” → 禁用
隐藏错误详情 web.config 中设置 <customErrors mode="On" />
定期更新 启用 Windows Update + 手动更新 IIS/.NET/依赖组件
备份 使用 appcmd backup 或第三方工具定期备份站点配置与数据

需要我根据你的具体技术栈(如 ASP.NET Core、PHP、Node.js)提供定制化部署脚本或 web.config 示例吗?欢迎补充细节 😊