gpt4 book ai didi

azure - 使用 Azure 网站进行反向代理

转载 作者:行者123 更新时间:2023-12-05 01:03:16 26 4
gpt4 key购买 nike

我有一个托管在 Azure 网站中的 Web 应用。我正在使用另一个级别的 API(具有 PUT、POST、GET、DELETE 方法)。我想让我的 Web 应用程序与 IE8 和 IE9 兼容,但不幸的是,即使使用 XDomainRequest 补丁,它也不支持 PUT、DELETE 的 CORS。

现在,我想使用反向代理之类的东西,这样它就会认为请求来自同一域。可能是反向代理

在 Azure 网站上可以吗?如果是,那么如何?

最佳答案

最后,我自己找到了这样做的方法:-)

我使用重写模块和 ARR 实现了它。

这是我所做的概述 -

  • 使用网络平台安装程序安装 ARR 和 URL 重写模块
  • 从 IIS 启用代理设置 -> 应用程序请求路由 (ARR) -> 服务器代理设置(在右侧 Pane 中)
  • 将网络应用添加到网站
  • 打开应用程序的 Web.config 并在 <system.webServer> </system.webServer> 中添加以下内容

    <rewrite>
    <rules>
    <rule name="Route Requests from localhost api to Remote API url" stopProcessing="true">
    <match url="^api/(.*)" />
    <conditions>
    <add input="{CACHE_URL}" pattern="^(https?)://" />
    </conditions>
    <action type="Rewrite" url="https://www.remotedomain.com/api/{R:1}" logRewrittenUrl="true" />
    <serverVariables>
    <set name="HTTP_ACCEPT_ENCODING" value="" />
    </serverVariables>
    </rule>
    </rules>
    <outboundRules>
    <rule name="Convert remote API response to localhost API" preCondition="ResponseIsHtmlOrJSON">
    <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://www.remotedomain.com/api/(.*)" />
    <action type="Rewrite" value="api/{R:2}" />
    </rule>
    <preConditions>
    <preCondition name="ResponseIsHtmlOrJSON">
    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^application/json" />
    </preCondition>
    </preConditions>
    </outboundRules>
    </rewrite>

  • 添加服务器变量以避免 IIS 阻止 Gzip

基本上,这将添加重写规则(入站和出站)。<​​/p>

  1. 入站规则会将所有请求路由至 http://localhost/api/{API_PATH}https://www.remotedomain.com/api/{API_PATH}
  2. 出站规则会将来自远程 API ( https://www.remotedomain.com/api/ ) 的所有响应映射到虚拟 API 网址 http://localhost/api 。因此浏览器会假设发送的请求和返回的响应来自本地 API 本身。

我在此处发布了详细教程:http://www.wrapcode.com/infrastructure/configure-reverse-proxy-with-url-rewrite-and-arr-for-iis/

关于azure - 使用 Azure 网站进行反向代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24990694/

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