【发布时间】:2015-04-28 09:28:13
【问题描述】:
我正在尝试通过 IIS 设置反向代理,以在第一方主机名上为第三方 JavaScript 文件提供服务。我已将 ARR 模块安装到 IIS 中并创建了 URL 重写规则,但由于某种原因它没有生效。我还进入了 IIS 中的 ARR 模块,并确保在“服务器代理设置”部分中设置了“启用代理”。
基本上我需要响应我的域上的请求
http://my.local.com/iojs/dyn_wdp.js
但实际上从以下位置提供文件:
https://third.party.com/latest/dyn_wdp.js
我的网址重写规则如下:
<rule name="reverseproxy" stopProcessing="false">
<match url="^(.*)iojs/(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="https://third.party.com/{R:2}" appendQueryString="false" />
</rule>
但是,当我击中时
http://my.local.com/iojs/dyn_wdp.js
在我的浏览器中,我仍然在 asp.net MVC 中发现控制器未找到异常。
更新:我注意到,如果我将操作类型更改为重定向 (301),它会起作用,但这会在客户端上重定向,这不是我想要的。我需要重写它,以使 JS 看起来是从我的服务器提供的。
以前有没有人做过这种事情,如果有,我错过了哪一步?
【问题讨论】:
-
那么这个第三方域完全位于您的网络之外?
-
是的,没错。它是一个完全独立的网络。
-
我不确定您是否可以以这种方式使用 ARR。我想重写规则将
https://third.party.com/...URL 传递给您的 IIS 服务器,这实际上给出了 404,因为它不负责为该域提供服务。 -
我和你正在研究同样的事情。同样的场景。您的正则表达式使一切对我有用。在此之前它不匹配规则,即使规则测试人员说它有效。
-
请问
dyn_wdp.js的目的是什么?
标签: asp.net-mvc iis reverse-proxy