Varnish:清除说它有效,但不会删除旧内容

2024-02-15

我正在 Digital Ocean Ubuntu VM 上运行一个独立的 varnish 实例,它基本上工作正常。该设置用于承担位于其他地方的旧 WordPress 服务器的负载。这很有效,但我很难清除内容。当谈论清除时,我的意思是使 URL 的缓存无效,以强制 varnish 从后端获取新版本(只是为了确保我看到了一些关于清除/禁止的刺激)。

我已经设置了一个用于清除的 ACL,据我所知,varnishlog 清除已被接受 - 在 WordPress 博客(W3TC 处理清除的地方)的一侧以及我尝试使用curl 清除的本地控制台的 es - X 清除http://url.to.purge http://url.to.purge

问题是,无论我在本地做什么,我仍然会在浏览器中获得旧版本的 URL。

这就是我在 vcl_recv 中处理清除的方式:

  if (req.method == "PURGE") {
    if (!client.ip ~ purge) {
      return(synth(405,"Not allowed."));
    }
    return (purge);
  }

每次清除时我都会收到 VCL_error(200, Purged) 所以我想这可能没问题。

看来我还是做错了事情。重新启动服务清漆后,整个缓存都会刷新,页面也会刷新 - 直到那时清漆会保留所有内容很长时间 - 无论我清除了多少。

我的清漆版本是4.0.3。

任何想法?

Thanks,

Frank


使用 vcl 4.1 在 Varnish 6 上得到相同的行为。 解决这个问题的唯一方法是显式定义 sub vcl_purge,如下所示:

sub vcl_purge {
set req.method = "GET";
set req.http.X-Purger = "Purged";
return (restart);
}

没有找到原因,这可能不完全是您想要的,因为清除后它将从后端获取内容而不等待客户端请求。 但仍然没有找到其他方法,这对我来说已经足够了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Varnish:清除说它有效,但不会删除旧内容 的相关文章

  • 是否可以让 OpenGL 在内存表面上绘图?

    我开始学习 OpenGL 我想知道是否可以让它在我通过其他库获得的视频内存缓冲区上绘制 要绘制到视频内存中 您可以使用帧缓冲对象 http www songho ca opengl gl fbo html绘制到 OpenGL 纹理或渲染缓冲

随机推荐

  • 在 Angular 4+ 中处理两个 URL(矩阵 && 查询)参数

    目前我们在我的 Angular 4 应用程序中使用矩阵参数 Google Analytics 在读取 URL 时出现问题 所以我们决定将其更改为查询参数 然而 旧的符号 矩阵 必须可访问并重定向到新的符号并将此类事件保存到数据库中 我看到三
  • 如何在 WinApi 中从 HANDLE 生成 FILE*?

    有没有一种简单的方法可以从 WinApi HANDLE 创建指向管道一端的 FILE 就像我们在 unix 中所做的那样 fdopen fd
  • Java jar-Archive 工具 - 设置包含内容的文件夹的路径

    当我使用这个命令时 echo C Program Files Java jdk1 7 0 07 bin jar cf C file file jar C data 在 jar Archive 工具的 CMD 中 它会创建名为 file ja
  • Linus 演讲 - Git 与数据损坏? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么 Android 通知 Intent 中不发送额外数据(整数)?

    以下代码显示通知并发送 int 数据 但在其他活动中getExtras 回报null Why int notificationID 1 NotificationManager nm NotificationManager getSystem
  • CoreBluetooth 从不在 iPhone 5S 上调用 didDiscoverServices

    大多数时候 我们正在编写的应用程序与我们的 BLE 外设配合得很好 通常 对于 iPhone 5S 用户来说 设备会陷入恐慌 每当我们扫描服务时 didDiscoverServices 永远不会调用委托方法 重新启动设备或删除所有设置 常规
  • 自定义 IPython 笔记本/Jupyter 幻灯片放映

    我使用 IPython Notebook Jupyter 的幻灯片功能创建了一个幻灯片 效果很好 我通过以下方式创建并托管了幻灯片ipython nbconvert 这也很好用 但我找不到任何如何自定义幻灯片的信息 显然我必须定制Revea
  • 如何在 flutter/dart 中进行 SSL 公钥固定?

    这里对 Flutter 以及一般编程 来说相对较新 只熟悉更基本的东西 但我现在遇到了在 flutter dart 中使用 CertificatePinner 的需要 https square github io okhttp 3 x ok
  • t-sql子串

    我基本上有一列需要进行子串化 该列的格式如下所示 Column A Root FOLDERPATH somesubfolderpath somedocument doc 第一个字符串 Root 将始终具有相同的长度和相同的字符 Root 之
  • ORB 计算错误:它删除了小图像的所有关键点

    我有一个 50x50 的小图像 我找到 ORB 关键点 请注意 我必须将 patchSize 的默认参数从 31 更改为 14 才能检测到一些关键点 OrbFeatureDetector det 500 1 2f 8 14 0 2 0 14
  • 会话在 IHttpModule 中不可用

    在我的程序中 我尝试在 IHttpModule 中使用会话变量 这是我的代码 这在 VS 2010 开发服务器中运行良好 但是当我尝试在 IIS7 中调试时 它显示异常System Web HttpException Session sta
  • 打开工作簿时关闭 Excel 后台错误检查

    我有一个 Excel 工作簿 里面有很多绿色的 错误检查 三角形 有什么方法可以使用 Excel VBA 在打开工作簿时关闭此功能 我认为这就是您正在寻找的 Application ErrorCheckingOptions Backgrou
  • Mongodb 聚合框架解释

    MongoDB 中的聚合框架有解释函数吗 我在文档中看不到它 如果没有 是否有其他方法可以检查查询在聚合框架内的执行情况 我知道你只是做 db collection find explain 但是使用聚合框架时出现错误 db collect
  • 使用 OraOLEDB 提供商部署应用程序

    我开发了一个使用Delphi 7 ADO和ORACLE的应用程序 我使用的提供程序是OraOLEDB 我需要使用这个提供程序 因为BLOB字段支持 现在我想与提供商一起分发此应用程序 我在网上搜索下载甲骨文提供商 http www orac
  • 使用 LLVM pass 添加内在函数

    我使用 LLVM 通道向输入代码添加了一个内在函数 我能够看到内部调用 但我无法弄清楚如何将代码编译到我的目标架构 x86 64 我正在运行以下命令 clang llvm config ldflags libs all ff s o foo
  • GNU 编译器优化

    我对编译器了解不多 但知道它们足够复杂和智能 可以优化您的代码 假设我的代码如下所示 string foo bar for int i 0 i lt foo length i some code that does not modify t
  • 从 Rails 应用程序(Word、PDF、Excel 等)搜索附件

    我在 Stack Overflow 上发表的第一篇文章 请温柔一点 我即将为客户启动一个新的 Ruby on Rails 3 1 项目 他们的要求之一是有一个搜索引擎 该引擎将索引大约 2 000 个文档 这些文档是 PDF Word Ex
  • 让 TortoiseSVN 将文件的修改时间设置为最新修订的时间戳

    我似乎记得能够得到乌龟SVN http en wikipedia org wiki TortoiseSVN在执行更新时将文件的上次修改时间戳设置为修订版的时间戳 因此 如果有人五天前提交了一个文件并且我更新了它 则修改后的时间戳将是五天前
  • 如何在没有密码的情况下使用paramiko连接到远程服务器?

    我正在用 Python 编写一个脚本 需要连接到remote server使用 SSH 并移动file from remote server to host server 我需要在没有密码的情况下执行此操作 因为它需要适用于任何远程服务器和
  • Varnish:清除说它有效,但不会删除旧内容

    我正在 Digital Ocean Ubuntu VM 上运行一个独立的 varnish 实例 它基本上工作正常 该设置用于承担位于其他地方的旧 WordPress 服务器的负载 这很有效 但我很难清除内容 当谈论清除时 我的意思是使 UR