Caching IIS ARR反向代理磁盘缓存

Caching IIS ARR反向代理磁盘缓存,caching,iis,reverse-proxy,arr,Caching,Iis,Reverse Proxy,Arr,我想为转发请求的反向代理响应设置磁盘缓存。我希望所有请求都按照以下重写规则转发到(例如): <rule name="ReverseProxy1" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="https://stackoverflow.com/{R:1}" /> </rule> 要缓存在磁盘上。我在applicationHost.confi

我想为转发请求的反向代理响应设置磁盘缓存。我希望所有请求都按照以下重写规则转发到(例如):

<rule name="ReverseProxy1" stopProcessing="true">
  <match url="(.*)" />
  <action type="Rewrite" url="https://stackoverflow.com/{R:1}" />
</rule>

要缓存在磁盘上。我在applicationHost.config中有以下设置:

<diskCache scavengerInterval="00:05:00">
  <driveLocation path="C:\inetpub\temp\cache" maxUsage="0" />
  <compression enabled="true">
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/x-javascript" enabled="true" />
    <add mimeType="application/javascript" enabled="true" />
  </compression>
  <sharedDriveLocation path="" />
</diskCache>
<proxy enabled="true" httpVersion="PassThrough" reverseRewriteHostInResponseHeaders="true">
  <cache requestConsolidationEnabled="true" queryStringHandling="Accept" validationInterval="00:01:00" />
</proxy>
<rewrite>
  <globalRules>
    <rule name="ARR_CacheControl_b17f5877-33f6-4bed-be49-f3c07a38cfef" enabled="true" patternSyntax="Wildcard">
      <match url="*" />
      <serverVariables>
        <set name="ARR_CACHE_CONTROL_OVERRIDE" value="1,max-age=1800" />
      </serverVariables>
      <conditions>
        <add input="{HTTP_HOST}" pattern="stackoverflow.com" />
      </conditions>
    </rule>
  </globalRules>
</rewrite>

不幸的是,磁盘缓存从未被命中。我可以通过检查带有X-ARR-CACHE-HIT=0项的IIS日志来判断。缓存文件夹始终为空。该文件夹是由IIS管理器UI创建的,我为此文件夹提供了对应用程序池标识的访问权限,因此我假设问题不在于对缓存文件夹的访问权限


我错过什么了吗?在internet上寻找解决方案没有给我任何结果,因此非常感谢您的任何输入。

我发现问题在于,so响应中存在Vary响应头。并且基于ARR上的回复,当响应中有Vary头时,ARR不支持缓存