2

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

因此,我提出的建议类似于 IIS 文章“使用 URL Rewrite v2 和应用程序请求路由的反向代理”。

我的设置如下:

  • 默认网站(接受 *: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 网关错误

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

HTTP 错误 502.3 - 网关错误 - 服务器返回无效或无法识别的响应

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

编辑:

我还启用了 WinHttp 跟踪,今天的请求日志可以在 pastebin找到。

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

请求诊断 www.mysite.com:80/new-page

4

2 回答 2

1

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

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

于 2013-12-20T12:39:55.690 回答
0

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

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

于 2018-09-17T19:42:25.017 回答