Apache 掉落、删除或不在缓存中存储头信息(Edge-Cache-Tag)。

问题描述 投票:0回答:1

我遇到了一个奇怪的情况,Apache 2.4不会从缓存中返回一个头。我有一个AEM实例在Publisher模式下返回这些头作为其响应的一部分。

Date: Fri, 22 May 2020 22:26:21 GMT
X-Content-Type-Options: nosniff
Edge-Cache-Tag: /en-us/
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked

流程基本上是这样的:

  • 我用一个类似于 https:/ip:443en-us)。
  • 路径被改写为内容其他路径。
  • Apache在4503端口点击AEM,进入路径 contentsomeotherpath。
  • 我的网络应用返回的是200,包括我放在上面的头信息
  • Apache会看到它的缓存中没有contentsomeotherpath的条目,并为它创建一个缓存条目。
  • 接下来也是最后,Apache会返回一个200。

当我再次点击Apache到 https:/ip:443en-us)。它的响应是200,但它没有返回 "Edge-Cache-Tag "头。我知道响应来自缓存,因为首先,我在缓存中看到一个 "contentsomeotherpath "的条目,而且如果我用Apache的 https:/ip:443en-us?foo=bar。 (一个绕过缓存的查询参数),头回来了,这意味着响应实际上来自于web应用,因为查询参数使得Apache绕过了缓存。

我不明白为什么Apache要从响应中删除 "Edge-Cache-Tag"。我已经检查了我所有的Apache配置,我没有任何删除头的指令(比如Header unset)。"Edge-Cache-Tag "不能被Apache缓存吗?

apache caching header aem cache-control
1个回答
2
投票

这是调度器的正常行为。你必须配置 Edge-Cache-Tag 作为缓存的头之一。

https:/docs.adobe.comcontenthelpenexperience-manager-dispatcherusingconfiguringdispatcher-configuration.html。

/headers 属性允许您定义将被 Dispatcher 缓存的 HTTP 头类型。在第一次请求未缓存资源时,所有与配置值相匹配的头文件(见下面的配置示例)都会存储在缓存文件旁边的一个单独文件中。在随后对缓存资源的请求中,存储的头会被添加到响应中。

© www.soinside.com 2019 - 2024. All rights reserved.