IIS10反向代理功能

2026-04-16 16:18:41 104

在 IIS 10 中配置反向代理(Reverse Proxy)是一个非常实用的操作,通常用于将请求转发到后端的 Node.js、Python、Java 应用,或者另一台 Web 服务器。

要实现这个功能,你必须安装两个核心组件:Application Request Routing (ARR)URL Rewrite

1. 准备工作

在开始配置之前,请确保你的服务器已安装以下插件:

  1. URL Rewrite:官方下载地址

  2. Application Request Routing (ARR) 3.0:官方下载地址

安装完成后,务必重启 IIS 管理器


2. 开启 ARR 代理功能(关键步)

安装好插件后,默认情况下代理功能是关闭的。你需要手动开启:

  1. 打开 IIS 管理器,在左侧连接树中点击 服务器名称(根节点)。

  2. 在中间的视图中找到 Application Request Routing Cache 并双击打开。

  3. 在右侧的操作栏中点击 Server Proxy Settings...

  4. 勾选 Enable proxy

  5. 点击右侧的 Apply 保存。


3. 配置反向代理规则

你可以针对整个站点配置,也可以针对某个特定目录。

场景 A:使用图形界面配置(新手推荐)

  1. 在左侧选择你要配置的 站点(例如 Default Web Site)。

  2. 双击中间的 URL Rewrite

  3. 在右侧点击 Add Rule(s)...

  4. 选择 Reverse Proxy 模板,点击 OK。

  5. 在弹出的窗口中:

    • 输入后端服务器地址:例如 localhost:8080192.168.1.50

    • 确保勾选了 Enable SSL offloading(如果你希望 IIS 处理 HTTPS,而后端用 HTTP)。

  6. 点击 OK。

场景 B:通过 web.config 直接配置(进阶推荐)

你也可以直接在站点的根目录下的 web.config 文件中加入以下代码。这种方式更精确,也方便备份。

XML


    
        
            
                
                    
                    
                
            
        
    


4. 常见问题与注意事项

  • 保留主机头 (Preserve Host Header): 如果你的后端程序(如 WordPress 或某些 API)需要根据域名来识别请求,你可能需要开启 preserveHostHeader

    • 在命令行(管理员)执行:

    %windir%\\\\system32\\\\inetsrv\\\\appcmd.exe set config -section:system.webServer/proxy /preserveHostHeader:True /commit:apphost
  • X-Forwarded-For 头部: IIS 默认会自动添加代理头部,告知后端真正的客户端 IP。如果后端拿不到原始 IP,请检查 ARR 设置中的 Custom Headers

  • 502.3 Bad Gateway: 这通常意味着 IIS 无法连接到你填写的后端地址。请检查后端服务是否启动,以及防火墙是否允许 IIS 访问该端口。

  • 最大请求限制: 反向代理大文件时,可能会遇到上传限制。记得在 IIS 的 Request Filtering 中调整 Maximum allowed content length


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图