我遇到了一个奇怪的情况,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
流程基本上是这样的:
当我再次点击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缓存吗?
这是调度器的正常行为。你必须配置 Edge-Cache-Tag
作为缓存的头之一。
该
/headers
属性允许您定义将被 Dispatcher 缓存的 HTTP 头类型。在第一次请求未缓存资源时,所有与配置值相匹配的头文件(见下面的配置示例)都会存储在缓存文件旁边的一个单独文件中。在随后对缓存资源的请求中,存储的头会被添加到响应中。