You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下IIS反向代理至Node.js服务出现404.4错误求助

解决Windows 10上IIS反向代理404.4错误的办法

先给你梳理下几个关键排查点,毕竟Windows 10的IIS默认配置和Server 2016确实存在不少差异:

1. 先修正web.config的语法错误

你贴出的web.config里多了一个</location>闭合标签,但开头并没有对应的<location>节点,这会导致IIS解析配置出错,直接修正为以下内容:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <clear />
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
          <match url="(.*)" />
          <action type="Rewrite" url="http://localhost:3000/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

2. 确认ARR代理功能已启用

Windows 10上安装ARR后,默认可能没开启代理功能,这是最常见的触发404.4的原因:

  • 打开IIS管理器,选中左侧的服务器节点(不是你的站点)
  • 双击中间面板的Application Request Routing Cache
  • 在右侧“操作”栏里点击服务器代理设置
  • 勾选“启用代理”,然后点击“应用”
  • 最后重启IIS(可以在命令行里运行iisreset)

3. 检查IIS必需组件是否安装完整

Windows 10的IIS默认组件比Server 2016少,确保你安装了这些关键组件:

  • 打开“控制面板”→“程序”→“启用或关闭Windows功能”
  • 展开“Internet Information Services”→“万维网服务”→“应用程序开发功能”,勾选ISAPI扩展和ISAPI筛选器
  • 展开“常见HTTP功能”,确保静态内容已勾选
  • 点击确定,等待组件安装完成后重启IIS

4. 验证站点应用程序池配置

确保你的mywebsite.com站点使用的应用程序池设置适配Node.js站点:

  • 在IIS管理器里右键你的站点→“基本设置”
  • 确认应用程序池的“.NET CLR版本”设置为无托管代码(因为Node.js是无托管应用)
  • 托管管道模式保持“集成”即可,点击确定后重启应用程序池

5. 排查防火墙和本地访问权限

  • 先在Win10机器上用浏览器直接访问http://localhost:3000,确认Node.js站点本身能正常运行
  • 检查Windows Defender防火墙是否阻止了IIS的出站请求:可以暂时关闭防火墙测试,如果能正常访问,就添加一条允许IIS向localhost:3000发送请求的规则
  • 确认站点文件夹的权限:除了IUSR,还要确保IIS_IUSRS组有读取权限

按照上面的步骤一步步排查,应该能解决这个404.4错误。我之前在Win10上配置反向代理时也遇到过类似问题,大多是ARR代理没开或者组件没装全导致的。

内容的提问来源于stack exchange,提问作者manwithplanet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:04:21