我正在从一个站点迁移到另一个站点,虽然这些站点位于同一台服务器上,但它们不在同一个应用程序池中。
因此,我提议的内容类似于IIS文章“Reverse Proxy with URL Rewrite v2 and Application Request Routing”。
我的设置如下:
我在ARR模块中启用了代理,并在“新网站”中有一个重写规则。目前,我在新网站(新页面)中只有一个页面,但随着我们迁移,这将逐渐增加。
<?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失败的请求记录中检索)。
答案 0 :(得分:1)
ARR似乎存在包含空格的标题的问题。
新应用程序有一个带空格的标题,并用连字符替换它来解决问题。
答案 1 :(得分:0)
我刚遇到这个。但是,我的问题与Cookie冲突有关。
一个好的测试是使用其他浏览器(或在Chrome中隐身)。如果可以在其他浏览器上使用,则可能是Cookie。尝试删除Cookie,以查看是否有帮助。如果可以控制,请尝试在您可能拥有的不同站点/环境之间更改Cookie名称。如果这超出了您的控制范围(您正在对所购买的某些工具进行反向代理,则可能无法实现)。