我们正在将我们的某个网站迁移到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
只是将所有请求发送到/times
到example.com
。那部分工作得很好。它只是忽略example.com
的缓存头而不缓存任何我们想要设置反向代理的主要用例。
在安装了IIS和ARR的普通计算机上,这种配置工作正常。
我真的希望无需在云端服务中使用Web角色即可在azure网站中使用它。我希望这是可能的。
答案 0 :(得分:1)
您是否尝试指定preserveHostHeader =&#34; true&#34;标志如下?
<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="true" reverseRewriteHostInResponseHeaders="true" />