咨询热线:4006-75-4006

售前:9:00-23:30    备案:9:00-18:00    技术:7*24h

Windows IIS Application Request Routing (ARR) 安装与配置教程

2026-04-01 17:51:17 949次

1. 什么是 Application Request Routing (ARR)?

Application Request Routing (ARR) 是 Microsoft IIS (Internet Information Services) 的一个扩展模块。它主要用于实现以下功能:

  • 反向代理 (Reverse Proxy):将客户端请求转发到后端的其他服务器(如 Node.js, Tomcat, Docker 容器等)。

  • 负载均衡 (Load Balancing):将流量分发到多个后端服务器,提高系统可用性和性能。

  • 输出缓存 (Output Caching):缓存动态内容,减少后端压力。

  • 健康监控 (Health Monitoring):自动检测后端服务器状态,剔除故障节点。

本教程将指导你在 Windows Server 上安装并基础配置 ARR。


2. 环境准备 (Prerequisites)

在开始之前,请确保你的服务器满足以下条件:

  1. 操作系统:Windows Server 2012 R2 / 2016 / 2019 / 2022。

  2. IIS 服务:必须已经安装并运行 IIS。

    • 检查方法:运行 inetmgr 看能否打开 IIS 管理器。

  3. 管理员权限:你需要拥有服务器的 Administrator 权限。

  4. 依赖模块

    • URL Rewrite Module 2.0+:ARR 通常依赖此模块来处理重写规则(安装 ARR 时通常会自动检测或提示安装,建议先确认已安装)。


3. 下载与安装 (Installation)

3.1 下载安装包

访问 Microsoft 官方下载页面(或搜索 "Microsoft Application Request Routing 3.0 download")。

3.2 执行安装

  1. 双击下载的 .msi 安装包(例如 requestRouter_3.0_amd64.msi)。

  2. 点击 Next

  3. 接受许可协议 (I Accept)。

  4. 选择安装路径(默认即可),点击 Next

  5. 点击 Install 开始安装。

  6. 安装完成后,点击 Finish

注意:安装过程中如果提示缺少 "URL Rewrite Module",请先去下载并安装 URL Rewrite 模块,然后再安装 ARR。


4. 核心配置 (Configuration)

安装完成后,ARR 不会自动生效,需要进行配置。

4.1 打开 IIS 管理器

  1. Win + R,输入 inetmgr,回车。

  2. 在左侧连接面板中,点击最顶层的服务器节点(即机器名称,不要点击具体的网站)。

4.2 启用代理功能 (Enable Proxy)

这是实现反向代理最关键的一步。

  1. 在中间的功能视图中,找到并双击 Application Request Routing Cache 图标。

  2. 在右侧的 Actions (操作) 面板中,点击 Server Proxy Settings... (服务器代理设置)。

  3. 在弹出的窗口中:

    • 勾选 Enable proxy (启用代理)。

    • (可选) 勾选 Enable SSL Offloading (如果你需要在 ARR 层终止 HTTPS)。

    • (可选) 设置 Disk Cache 参数以启用缓存。

  4. 点击 Apply (应用)。

安全警告:启用代理后,你的服务器将允许转发请求到任意内部地址。请务必在防火墙和 IIS 请求过滤中做好安全限制,防止服务器被当作开放中继使用。


5. 常见使用场景配置

场景一:配置反向代理 (Reverse Proxy)

假设你有一个运行在 localhost:3000 的 Node.js 应用,你想通过 IIS 的 80 端口访问它。

  1. 确保已安装 URL Rewrite 模块

  2. 在 IIS 管理器左侧,点击你要配置的具体 网站 (Site)

  3. 双击 URL Rewrite 图标。

  4. 在右侧点击 Add Rule(s)... -> 选择 Blank rule (空白规则) -> OK

  5. 配置规则

    • Action type: Rewrite

    • URL: http://www.landui.com:3000/{R:0}

    • 勾选 Append query string

    • Requested URL: Matches Pattern

    • Using: Wildcards (或 Regular Expressions)

    • Pattern: * (匹配所有)

    • Name: ReverseProxyToNode

    • Match URL:

    • Conditions (可选): 留空或根据需要添加。

    • Action:

  6. 点击右侧 Apply

  7. 重要:在反向代理中,通常需要保留原始 Host 头。在 URL Rewrite 主界面右侧,点击 View Server Variables,确保 HTTP_HOST, SERVER_NAME 等允许被设置。

场景二:配置负载均衡 (Load Balancing Server Farm)

如果你有多个后端服务器(例如 192.168.1.10 和 192.168.1.11)。

  1. 在 IIS 管理器左侧,右键点击服务器节点(机器名)。

  2. 选择 Add Server Farm...

  3. 输入农场名称 (例如 MyWebFarm),点击 Next

  4. 添加服务器:输入后端服务器的 IP 或域名,点击 Add,可添加多个。点击 Next

  5. 健康测试 (Health Test)

    • 建议启用 Enable Health Test

    • 设置测试间隔和阈值(例如每 5 秒请求一次 /health 接口)。

    • 点击 Finish

  6. 绑定到网站

    • 创建好 Server Farm 后,回到你的 网站 (Site)

    • 打开 URL Rewrite

    • 添加规则,Action 类型选择 Route to Server Farm,然后选择刚才创建的 MyWebFarm


6. 验证与日志 (Verification)

6.1 测试请求

使用浏览器或 Postman 访问你的 IIS 地址。如果配置正确,你应该能看到后端应用返回的内容,但浏览器地址栏显示的是 IIS 的地址。

6.2 查看 ARR 日志

ARR 默认会记录转发日志,用于排查问题。

  • 日志位置:通常在 %SystemDrive%\\inetpub\\logs\\logfiles\\W3SVC1\\ 下,或者在 IIS 日志中查看。

  • 在 IIS 日志中,sc-substatus 字段可能会显示 ARR 相关的状态码。

  • 你也可以在 Application Request Routing Cache 设置中启用详细的日志记录。


7. 常见问题与注意事项 (Troubleshooting & Tips)

  1. 502 Bad Gateway:

    • 检查后端服务是否正在运行。

    • 检查防火墙是否允许 IIS 服务器访问后端端口。

    • 检查 web.config 中的重写规则 URL 是否正确。

  2. 无限重定向循环:

    • 通常是因为后端应用也试图将 HTTP 重定向到 HTTPS,而 ARR 配置了 SSL 卸载。需要在后端应用中信任 ARR 发送的 X-Forwarded-Proto 头。

  3. 获取客户端真实 IP:

    • 默认情况下,后端应用看到的 IP 是 ARR 服务器的 IP。

    • ARR 会自动添加 X-Forwarded-For 头。后端应用需要配置为读取该头来获取用户真实 IP。

  4. 性能优化:

    • 如果流量大,建议在 Application Request Routing Cache 中调整 Disk CacheMemory Cache 的大小。

    • 调整 Time to Live (TTL) 设置。

8. 总结

安装 ARR 只是第一步,核心在于理解 反向代理服务器场 (Server Farm) 的概念。

  • 对于简单的单应用代理,使用 URL Rewrite 配合 Enable Proxy 即可。

  • 对于高可用集群,使用 Server Farm 功能。

配置完成后,建议在生产环境前进行充分的压力测试和安全扫描。


首页
最新活动
个人中心
XML 地图