Azure网站作为使用ARR的缓存反向代理

时间:2014-12-04 02:53:11

标签: caching iis azure reverse-proxy azure-web-sites

我们正在将我们的某个网站迁移到Azure,以前使用ARR (Application Request Routing)作为缓存反向代理进行设置。它被设置为反向代理,它将尊重它代理的站点的缓存头。

我已经关注this guide on using an Azure website as a reverse proxy并且一切正常,只是它不尊重它所代理的网站的缓存标头。我尝试在我的applicationHost.xdt中添加一些更相关的元素,但我所做的一切似乎都没有效果。

以下是我applicationHost.xdt的相关部分:

<system.webServer>
    <caching xdt:Transform="Replace" enabled="true" enableKernelCache="true" maxResponseSize="1000000"></caching>

    <proxy xdt:Transform="InsertIfMissing" enabled="true" reverseRewriteHostInResponseHeaders="true" minResponseBuffer="4096" responseBufferLimit="12392">
        <cache enabled="true" queryStringHandling="Accept" validationInterval="00:01:00" />
    </proxy>
</system.webServer>

这是我的web.config

<system.webServer>
    <rewrite>
        <rules>
            <rule name="CurrentTime" stopProcessing="true">
                <match url="^times/?(.*)" />
                <action type="Rewrite" url="http://example.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

web.config只是将所有请求发送到/timesexample.com。那部分工作得很好。它只是忽略example.com的缓存头而不缓存任何我们想要设置反向代理的主要用例。

在安装了IIS和ARR的普通计算机上,这种配置工作正常。

我真的希望无需在云端服务中使用Web角色即可在azure网站中使用它。我希望这是可能的。

1 个答案:

答案 0 :(得分:1)

您是否尝试指定preserveHostHeader =&#34; true&#34;标志如下?

 <proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="true" reverseRewriteHostInResponseHeaders="true" />