【问题标题】:Using IIS and ARR to reverse proxy returns "The server returned an invalid or unrecognized response"使用 IIS 和 ARR 反向代理返回“服务器返回无效或无法识别的响应”
【发布时间】:2014-01-08 01:49:35
【问题描述】:

我正在从一个站点迁移到另一个站点,尽管这些站点位于同一台服务器上,但它们不在同一个应用程序池中。

因此,我的提议类似于 IIS 文章“Reverse Proxy with URL Rewrite v2 and Application Request Routing”。

我的设置如下:

  • 默认网站(接受 *:80 和 *:443 上的连接)。
  • 新网站(接受 *:81 上的连接)

我已在 ARR 模块中启用代理,并在“新网站”中有一个重写规则。目前,我在新站点(new-page)中只有一个页面,但随着我们迁移,这将逐渐增加。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Reverse Proxy to New Website" stopProcessing="true">
          <match url="^new-page" />
          <action type="Rewrite" url="http://www.mysite.com:81/new-page" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

当我访问 www.mysite.com/index.htm 时,我看到了我的旧主页,这是正确的。

但是,如果我访问 www.mysite.com/new-page,我会收到错误消息:

HTTP 错误 502.3 网关错误

服务器返回无效或无法识别的响应

对此的任何帮助将不胜感激。

编辑:

我也开启了WinHttp追踪,今天的请求日志可以在here at pastebin找到。

我在下面有一些进一步的信息(从 IIS Failed Request Logging 中检索)。

【问题讨论】:

  • 502.3 Bad Gateway 可能是服务器没有响应,可能是防火墙使用非标准端口?
  • @dirt 猜的不错,但即使关闭防火墙或将端口列入白名单,也会返回相同的响应。
  • 服务器是否健康? (您是否偶然尝试在单个服务器上执行此操作?)
  • @dirt 是的,我正在尝试在一台服务器上执行此操作。
  • @dirt 健康测试正在检查http://www.mysite.com/new-page,结果显示为不健康(由于 502 错误)。但是,如果我删除 /new-page,则它报告为健康。

标签: iis reverse-proxy arr


【解决方案1】:

似乎 ARR 对包含空格的标头存在问题。

新应用程序有一个带有空格的标头,用连字符替换它可以解决问题。

【讨论】:

    【解决方案2】:

    我刚碰到这个。但是,我的问题与 cookie 冲突有关。

    一个好的测试是使用不同的浏览器(或 Chrome 中的隐身浏览器)。如果它可以在其他浏览器上运行,则可能是 cookie。尝试删除 cookie 看看是否有帮助。如果这是您可以控制的,请尝试在您可能拥有的不同站点/环境之间更改 cookie 名称。如果它超出您的控制范围(您正在对您购买的某些工具进行反向代理,这可能是不可能的)。

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多