gpt4 book ai didi

Varnish ESI 必须走不同的src路径吗?

转载 作者:行者123 更新时间:2023-12-03 17:46:59 27 4
gpt4 key购买 nike

包含5个esi:include的页面,每个src都是一条具有相同参数的相同路径,例如'm.htm?p = 1'和'm.htm?p = 2',但是我使用了varnishlog并仅看到发生了1个esi请求,所以我不可以在多个esi:include标记中使用相同的路径吗?

最佳答案

默认情况下,Varnish支持每个资源n esi:include指令,每个客户端请求最多支持5级ESI递归,但这是可配置的。这是我将要调试的步骤列表:

  • 检查以确保从 Varnish 传递到您的客户端的响应中没有<esi:include />标记。然后,通过直接点击后端,确保您的后端生成了与您期望的一样多的<esi:include />标签。只有当它们存在并且varnish不解析它们时,才应归咎于Varnish。确保没有错别字,例如<es:include .../>
  • 从esi包含标签请求src url,直接将其发送到您的后端服务器。服务器错误了吗?默认行为是忽略ESI请求上的错误,在这种情况下,我不知道varnishlog是否会报告错误。
  • 检查为esi片段返回的响应头。如果它们也是可缓存的,则varnish直到它们过期后才会再次从后端请求它们,并且可能不会将其记录在varnishlog中(请检查文档)。
  • 确保具有不同查询字符串的请求散列到不同的缓存键。如果您的VCL试图通过忽略查询字符串来提高命中率,则ESI方案将无法工作,因为每个标签在逻辑上都包含相同的缓存资源。

  • 不知道您是只关心varnishlog输出还是页面本身是否确实存在esi失败的症状,这是我能想到的全部。

    关于Varnish ESI 必须走不同的src路径吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17613147/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com