gpt4 book ai didi

asp.net-mvc - 在 IIS 中创建反向代理

转载 作者:行者123 更新时间:2023-12-03 15:57:55 24 4
gpt4 key购买 nike

我正在尝试通过 IIS 设置反向代理以在第一方主机名上提供第三方 JavaScript 文件。我已经将 ARR 模块安装到 IIS 中并创建了一个 URL 重写规则,但由于某种原因它没有生效。我还进入了 IIS 中的 ARR 模块,并确保在“服务器代理设置”部分设置了“启用代理”。

基本上我需要响应我域上的请求

http://my.local.com/iojs/dyn_wdp.js

但实际提供的文件来自:

https://third.party.com/latest/dyn_wdp.js

我的URL重写规则如下:

<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 中找不到 Controller 的异常。

更新:我注意到,如果我将操作类型更改为重定向 (301),它会起作用,但这不是我想要的在客户端上的重定向。我需要重写,以便 JS 看起来是从我的服务器提供的。

以前有没有人做过这种事情,如果有,我错过了哪一步?

最佳答案

不确定它是否改变了什么,但这是我成功使用的规则。

<rule name="ReverseProxy" enabled="true" stopProcessing="true">
<match url="^(.*)iojs/(.*)" />
<action type="Rewrite" url="https://third-party.com/{R:2}" appendQueryString="false" logRewrittenUrl="true" />
</rule>

和你的基本一样。

我这样调用它:

http://my.local.com/iojs/latest/dyn_wdp.js

这将创建以下匹配项:

  • {R:0}/iojs/latest/dyn_wdp.js
  • {R:1}/iojs/latest/dyn_wdp.js
  • {R:2} latest/dyn_wdp.js

这样规则将成功重写为:

https://third-party.com/ + latest/dyn_wdp.js > 200 OK

注意 URL 中的 latest,因为如果不包含它,将导致错误的重写:

https://third-party.com/ + dyn_wdp.js > 404 未找到

我在网站上只有一个规则,如果你在虚拟目录中这样做,那么它就无法正常工作。

此外,根据此安装指南: https://blogs.iis.net/erez/new-features-in-arr-application-request-routing-3-0

  1. Stop IIS by running the commands net stop was and net stop wmsvc on an elevated command-prompt window

  2. Install URL rewrite (v2)

  3. Install Web Farm Framework (v1)

  4. Install ARR (v3)

  5. Install the External Cache module (v1)

确保您有外部缓存模块(目前为 v1.1),因为我的案例中没有安装它。

安装 ARR 3.0 的推荐方法是通过 WebPlatform,但它没有为我安装外部缓存。我必须自己做,不确定是否有效。

此外,不确定您是否遇到 Controller 未找到异常或只是 404,但 .js 文件不应通过 ASP.NET MVC。

在所有这一切之后,使用您的正则表达式,一切开始按计划进行。

HTH

关于asp.net-mvc - 在 IIS 中创建反向代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29915526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com