【发布时间】:2014-12-04 02:53:10
【问题描述】:
我们正在将我们的一个网站迁移到之前使用ARR (Application Request Routing) 作为缓存反向代理设置的 Azure。它被设置为一个反向代理,它将尊重它所代理的站点的缓存标头。
我关注了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 只是将所有请求路由到 /times 到 example.com。那部分工作得很好。它只是忽略了example.com 的缓存标头而不缓存任何内容,这是我们为什么要设置反向代理的主要用例。
同样的配置在安装了 IIS 和 ARR 的普通机器上也能正常工作。
我真的很想让它在 azure 网站中运行,而不必在云服务中使用 Web 角色。我希望这是可能的。
【问题讨论】:
标签: caching iis azure reverse-proxy azure-web-app-service