目录

  1. 第一部分:IIS 的安装
    • 1 通过“启用或关闭 Windows 功能”安装
    • 2 验证安装是否成功
  2. 第二部分:IIS 的基本配置
    • 1 打开 IIS 管理器
    • 2 配置默认网站
    • 3 理解 IIS 的核心概念(网站、应用程序、应用程序池)
  3. 第三部分:部署一个静态网站
    • 1 准备网站文件
    • 2 在 IIS 中创建新网站
    • 3 浏览你的网站
  4. 第四部分:部署一个动态网站(如 ASP.NET)
    • 1 安装 .NET 运行时
    • 2 配置应用程序池
    • 3 部署 ASP.NET 项目
  5. 第五部分:常见问题与高级配置
    • 1 解决端口占用问题(80/443)
    • 2 配置 SSL 证书(HTTPS)
    • 3 设置目录浏览
    • 4 配置默认文档
    • 5 IIS 重启与停止
  6. 第六部分:总结与最佳实践

第一部分:IIS 的安装

IIS 在 Windows 中是作为一项“可选功能”存在的,默认不安装。

iis 安装 配置 使用教程
(图片来源网络,侵删)

1 通过“启用或关闭 Windows 功能”安装

  1. 打开功能窗口

    • 在 Windows 搜索栏中输入 控制面板 并打开。
    • 将“查看方式”改为“大图标”或“小图标”,然后找到并点击 “程序”
    • 在“程序和功能”下,点击 “启用或关闭 Windows 功能”
  2. 勾选 IIS 组件

    • 在弹出的窗口中,找到并展开 “Internet Information Services”
    • 为了完整的功能,建议勾选以下默认项:
      • Web 管理工具
        • IIS 管理控制台:这是管理 IIS 的图形界面,必须勾选。
      • World Wide Web 服务
        • 应用程序开发功能:根据你的需求选择。
          • ASP.NET:如果需要运行 .NET 网站,必须勾选。
          • ASP:如果需要运行经典 ASP 网站。
          • CGI:如果需要运行 CGI 程序。
        • 常见 HTTP 功能:这是核心功能,默认已勾选大部分,包括 HTTP 重定向自定义错误默认文档目录浏览HTTP 错误、(提供 HTML, CSS, JS, 图片等服务)。
        • 健康和诊断:如 请求监控日志记录
        • 安全性:如 请求筛选IP 地址和域限制
  3. 点击“确定”安装

    系统会自动从 Windows 更新下载所需的文件并完成安装,这可能需要几分钟时间,安装完成后,会提示你重启计算机(通常不需要立即重启,可以稍后再进行)。

    iis 安装 配置 使用教程
    (图片来源网络,侵删)

2 验证安装是否成功

安装完成后,可以通过以下方式验证:

  • 使用 IIS 管理器
    1. Win + R 键,输入 inetmgr,然后按回车。
    2. 如果成功打开 “Internet Information Services (IIS) 管理器” 窗口,说明安装成功。
  • 在浏览器中访问
    1. 打开任意浏览器(如 Chrome, Edge)。
    2. 在地址栏输入 http://localhosthttp://127.0.0.1
    3. 如果能看到一个 IIS 7 欢迎页,说明 IIS 已经正常运行。

第二部分:IIS 的基本配置

1 打开 IIS 管理器

如上所述,按 Win + R,输入 inetmgr 并回车,这是你配置和管理 IIS 的主要工具。

2 配置默认网站

IIS 安装后会自动创建一个名为 “Default Web Site” 的网站,它监听所有 IP 地址的 80 端口,这个网站的物理路径默认是 C:\inetpub\wwwroot

  • 物理路径:网站文件存放的实际文件夹,默认 C:\inetpub\wwwroot 下的 iisstart.htm 文件就是欢迎页的来源。
  • 绑定:网站如何被访问,默认绑定的是 http://:80/,意味着通过 HTTP 协议,在 80 端口访问本机时,就会显示这个网站。

3 理解 IIS 的核心概念

  1. 网站

    iis 安装 配置 使用教程
    (图片来源网络,侵删)
    • 一个独立的 Web 应用程序,拥有自己的绑定(IP、端口、主机头)和物理路径。
    • 你可以创建一个名为 "MyBlog" 的网站,绑定到 http://myblog.local:8080,路径指向 D:\MyBlog\files
  2. 应用程序

    • 位于网站内部的一个逻辑单元,它拥有一个独立的“应用程序池”,可以与网站的其他部分隔离。
    • 在你的 "MyBlog" 网站下,可以创建一个名为 "Admin" 的应用程序,指向 D:\MyBlog\admin 目录,这样,Admin 部分可以运行在不同的 .NET 版本下。
  3. 应用程序池

    • 这是 IIS 中最重要的概念之一,它是一组 worker processes (w3wp.exe),负责处理一个或多个应用程序的请求。
    • 隔离性:不同的应用程序池运行在不同的进程中,一个应用程序池崩溃不会影响其他应用程序池中的应用程序。
    • 资源管理:可以为每个应用程序池单独设置 .NET Framework 版本、托管管道模式、回收策略、CPU 限制等。
    • 默认池DefaultAppPool 是最常用的,通常用于运行 .NET 4.x 或更高版本的应用程序。

第三部分:部署一个静态网站

假设你有一个简单的 HTML 网站,文件结构如下:

MyStaticSite/
├── index.html
└── css/
    └── style.css

1 准备网站文件

  1. 在你的电脑上创建一个文件夹,D:\MyStaticSite
  2. 将你的 index.htmlcss 文件夹复制到 D:\MyStaticSite 中。

2 在 IIS 中创建新网站

  1. 打开 IIS 管理器

  2. 在左侧的“连接”窗格中,右键点击 “网站”,选择 “添加网站...”

  3. 填写网站信息:

    • 网站名称:输入一个易于识别的名称,如 MyStaticSite
    • 物理路径:点击右侧的浏览按钮,选择你刚才创建的文件夹 D:\MyStaticSite
    • 类型:保持默认的 http
    • IP 地址:默认为 全部未分配,表示监听所有可用 IP。
    • 端口:默认为 80,80 端口已被占用(例如被 IIS 默认网站或其他程序占用),可以改为其他端口,如 8080
    • 主机名:留空,如果需要通过域名访问,这里填写域名(如 www.mysite.com),并需要配置 DNS 解析。
  4. 点击 “确定”

3 浏览你的网站

  1. 在 IIS 管理器中,选中你刚刚创建的 MyStaticSite 网站。
  2. 在右侧的“操作”窗格中,点击 “浏览 :80” (或你设置的端口)。
  3. 浏览器应该会自动打开并显示你的 index.html 页面,如果样式没有加载,请检查 index.html 中引用 CSS 路径是否正确(应使用相对路径)。

第四部分:部署一个动态网站(如 ASP.NET Core)

以部署一个 ASP.NET Core Razor Pages 项目为例。

1 安装 .NET 运行时

IIS 本身不直接运行 .NET Core 应用。.NET Core 应用是作为独立的进程运行的,IIS 通过一个名为 ASP.NET Core Module 的模块来反向代理请求给这个进程。

  1. 访问 .NET 下载页面
  2. 下载并安装与你项目版本匹配的 .NET Desktop Runtime.NET Runtime

2 配置应用程序池

ASP.NET Core 应用不能在“集成”模式的应用程序池中运行,它需要一个“无托管代码”的应用程序池。

  1. 在 IIS 管理器左侧,点击 “应用程序池”
  2. 在右侧“操作”窗格中,点击 “添加应用程序池...”
  3. 名称:输入你的项目名称,如 MyAspNetAppPool
  4. .NET CLR 版本:选择 “无托管代码”
  5. 托管管道模式:选择 “集成”
  6. 点击 “确定”

3 部署 ASP.NET 项目

  1. 发布项目

    • 在 Visual Studio 中,右键你的项目 -> 发布
    • 选择 “文件夹” 作为目标,然后点击“发布”。
    • 这会生成一系列文件,包括 .exe, .dll, web.config 等,到一个发布文件夹(如 bin\Release\net6.0\publish)。
  2. 在 IIS 中创建网站

    • 右键“网站” -> “添加网站...”
    • 网站名称MyAspNetSite
    • 物理路径:选择你的项目发布文件夹。
    • 应用程序池:选择你刚刚创建的 MyAspNetAppPool
    • 端口:可以选择 80 或其他。
    • 点击 “确定”
  3. 配置 web.config

    • IIS 会自动识别 web.config 文件,并根据其中的 <aspNetCore> 配置来启动你的应用。
    • 关键配置是 processPath,它指向你的应用程序的可执行文件(通常是 dotnet.exe),arguments 指向你的应用 DLL(.\YourApp.dll)。
    • 你通常不需要手动修改这个文件,Visual Studio 发布时会自动生成正确的配置。
  4. 浏览网站

    • 选中 MyAspNetSite,点击“浏览”,你的 ASP.NET Core 应用就应该运行起来了。

第五部分:常见问题与高级配置

1 解决端口占用问题(80/443)

如果你尝试创建网站时使用 80 或 443 端口,提示“该端口已被占用”,原因可能是:

  • IIS 默认网站:停止或删除默认网站。
  • 其他程序:IIS、Skype、TeamViewer、一些杀毒软件等可能会占用 80 端口。
    • 解决方法:打开命令提示符(管理员),运行 netstat -ano | findstr :80 查看占用 80 端口的进程 ID (PID),然后打开任务管理器,在“详细信息”选项卡中找到对应 PID 的进程并结束它。

2 配置 SSL 证书(HTTPS)

为网站启用 HTTPS 是非常重要的。

  1. 获取证书

    • 开发/测试:可以使用 IIS 创建一个“自签名证书”。
    • 生产环境:从受信任的证书颁发机构 购买,或使用 Let's Encrypt 等免费服务。
  2. 在 IIS 中绑定证书

    • 在 IIS 管理器中,选中你的网站。
    • 在右侧“操作”窗格中,点击 “绑定...”
    • 在“网站绑定”窗口中,点击 “添加...”
    • 类型:选择 https
    • 端口:默认 443
    • SSL 证书:从下拉列表中选择你已安装的证书,如果没有,需要先在服务器上导入证书。
    • 点击 “确定”
  3. 强制 HTTP 重定向到 HTTPS

    • 在 IIS 管理器中,双击你的网站下的 “URL 重写” 模块。
    • 在右侧“操作”窗格中,点击 “添加规则...”
    • 选择 “空白规则”,点击“确定”。
    • 名称:输入 Redirect to HTTPS
    • 匹配 URL -> 模式:输入 。
    • 条件 -> 输入:选择 {HTTPS}
    • 条件 -> 模式:输入 off
    • 操作 -> 操作类型:选择 “重定向”
    • 重定向 URL:输入 https://{HTTP_HOST}/{R:1}
    • 勾选 “将查询字符串作为重定向 URL 的一部分包含”“将重定向永久重定向”
    • 点击 “应用”

3 设置目录浏览

默认情况下,访问一个没有默认文档的目录会显示“403.14 - Forbidden”,启用“目录浏览”可以列出该目录下的所有文件和文件夹。

  • 在 IIS 管理器中,选中你的网站或某个虚拟目录。
  • 在中间窗格中,找到 “目录浏览”,双击打开。
  • 在右侧“操作”窗格中,点击 “启用”

4 配置默认文档

当用户访问 http://mysite/ 时,IIS 会按顺序查找默认文档列表中的文件,找到第一个存在的文件就返回它。

  • 在 IIS 管理器中,选中你的网站或某个虚拟目录。
  • 在中间窗格中,找到 “默认文档”,双击打开。
  • 在右侧“操作”窗格中,可以 “添加...” 你自己的默认文档(如 default.aspx, index.php),也可以使用 “上移”“下移” 调整优先级。

5 IIS 重启与停止

  • 停止/启动/重启网站:在 IIS 管理器中选中网站,右侧“操作”窗格有相应按钮。
  • 停止/启动/重启整个 IIS 服务
    • 打开命令提示符(管理员)。
    • iisreset /stop:停止所有 IIS 服务。
    • iisreset /start:启动所有 IIS 服务。
    • iisreset /restart:重启所有 IIS 服务(最常用)。

第六部分:总结与最佳实践

  1. 安全第一

    • 始终使用 HTTPS:为所有生产环境网站配置 SSL 证书。
    • 最小权限原则:为网站文件夹设置正确的 NTFS 权限,IIS_IUSRSIUSR 账户只需要“读取”和“执行”权限,如果需要写入,再单独赋予。
    • 及时更新:保持 Windows Server 和 IIS 的更新。
  2. 性能优化

    • 为不同网站使用不同的应用程序池:实现资源隔离,提高稳定性。
    • 启用压缩:在 IIS 中启用静态和动态内容压缩,可以显著减少传输数据量,加快页面加载速度。
    • 使用静态文件缓存:配置输出缓存,减少对后端应用程序的请求。
  3. 可维护性

    • 清晰的文件结构:将网站文件、日志、备份等放在不同的盘符和目录下,便于管理。
    • 定期备份:定期备份网站文件和配置(IIS 配置可以导出为 .xml 文件)。
    • 使用 Web Farm Framework (WFF):如果需要部署多台服务器实现负载均衡,可以考虑使用 WFF。

希望这份详尽的教程能帮助你顺利上手和使用 IIS!如果你在某个步骤遇到问题,可以随时提问。