正则表达式问题通过curl向Varnish服务器发送BAN请求

2024-03-06

我一直在尝试发送BAN请求通过curl to the Varnish服务器缓存的内容无效。该 url 包含一些供 Varnish 检查的正则表达式。我已成功发送此请求:

1. curl -X BAN "https://oursite.com/product/item/(100|7|9||8|7|6|5|4|2|1)"

<!DOCTYPE html>
<html>
  <head>
    <title>200 Ban added</title>
  </head>
  <body>
    <h1>Error 200 Ban added</h1>
    <p>Ban added</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 66211</p>
    <hr>
    <p>Varnish cache server</p>
  </body>
</html>

但有一个更复杂的网址

2. curl -X BAN "https://oursite.com/product/(search/home$|item/(391|1232))"

// What I'm trying to remove are:

1./product/search/home
2./product/item/391
3./product/item/1232

默认.vcl

if (req.method == "BAN") {

        if (!client.ip ~ purge) {

            return(synth(403, "Not allowed."));
        }

        ban("req.url ~ ^"+req.url);

        return(synth(200, "Ban added"));
}

清漆日志:

*   << BeReq    >> 163855
-   Begin          bereq 163854 pass
-   Timestamp      Start: 1450969228.080453 0.000000 0.000000
-   BereqMethod    BAN
-   BereqURL       /product/(search/home$|item/(391|1232))
-   BereqProtocol  HTTP/1.1
-   BereqHeader    User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
-   BereqHeader    Host: oursite.com

已成功发出curl请求,如图所示varnishlog,但我不知道为什么正则表达式不起作用。没有页面被清除。 谁能告诉我有什么问题吗?我需要逃脱哪些角色?


正则表达式看起来不错。
我认为你应该尝试逃避斜线在第一个括号之后。我假设 Varnish 将括号之间的表达式解释为正则表达式(这很好),并且在正则表达式中斜杠是分隔符(某种特殊字符)。
这可能有效:

curl -X BAN "https://oursite.com/product/(search\/home$|item\/(391|1232))"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式问题通过curl向Varnish服务器发送BAN请求 的相关文章

随机推荐

  • 使用 jwrapper 构建的 jar 不起作用

    jwrapper 以某种方式操作应用程序 jar 并导致 jar 不起作用 在运行时它会抛出 MyClass 无法转换为 MyClass 类型错误 我相信这是由于重新评估创建类加载器的代码造成的 导致加载类 MyClass 的多个实例 jw
  • 使用 Javascript 将值插入多个隐藏字段,每个隐藏字段以不同的形式

    我有一个 HTML 表 其中包含从数据库中提取的记录 通话时间 列中的条目是从 MySQL 数据库中检索的 定时器 列中的条目不是从数据库中检索的 它是一个 Javascript 定时器 一旦用户点击确认按钮 计时器Stops并且计时器的最
  • 我可以将 Json 反序列化为 Python 中的 C# Newtonsoft 类吗

    这是json name david age 14 gender male 这是Python类 class Person def init self self name None self age None self gener None s
  • 使用 Python 3 将大型 CSV 文件转换为 Excel

    这是我的代码将 CSV 文件转换为 xlsx文件 对于小尺寸 CSV 文件 此代码工作正常 但是当我尝试较大尺寸的 CSV 文件时 它显示错误 import os import glob import csv from xlsxwriter
  • 自然排序按列名称对数据帧的列进行排序

    我想按列名称排列数据框的列 是否可以使用自然排序来做到这一点 我的列目前按数字方式排列来自以下数据的数据 块引用 A1 A10 A11 A12 A2 A3 A4 1 2 我想重新排列列 以便它们按自然排序排列 如下所示 A1 A2 A3 A
  • javax.net.ssl.SSLPeerUnverifiedException:主机名与对等方提供的证书主题不匹配

    我关注了 stackoverflow 上的许多链接并尝试了许多解决方案 但没有一个对我有用 我在用着WSO2 API manager版本1 9 1 我面临以下错误 Exception in thread main javax net ssl
  • nginx 到 localhost 的配置是否正确?

    我大约一个小时前刚刚安装了 nginx 和 php fastcgi 在阅读了快速启动配置的示例以及 nginx 文档等后 我只是无法让它工作 无论我改变或尝试什么 我总是只得到 欢迎来到 Nginx localhost 上的屏幕 我什至无法
  • jQuery.get 未收到服务器上文件的最新版本[重复]

    这个问题在这里已经有答案了 可能的重复 防止缓存 AJAX 调用 https stackoverflow com questions 367786 prevent caching of ajax call 我正在使用 jQuery 读取 W
  • sql插入到asp.net中

    con Open SqlCommand cmd new SqlCommand INSERT INTO user Firstname Lastname Email Pass Type values first last email pass
  • 在 Unix / Bash 中,“xargs -p”是在运行任何命令之前提示确认的好方法吗?

    我问过如何发出任何命令 询问是 否 在执行之前 问题中 在 Bash 中 如何将 Are you certain Y n 添加到任何命令或别名中 https stackoverflow com q 3231804 似乎对于命令 hg pus
  • Rails 从显示操作下载文件?

    我有一个上传器 可以让您上传文档 我想要做的是当您查看文档的显示操作时触发文档的下载 网址将类似于 documents 16 该文档可以是 txt 或 doc 到目前为止 我的表演动作如下所示 def show document Docum
  • 我需要检测云函数中何时仅某个字段发生更改

    请查看下面我的云功能 我想在仅 Job jobId 中的状态字段更改时执行一些操作 然后在 Job jobId 中的任何其他字段更改时执行其他操作 因此我创建了下面的两个函数 但当状态字段发生变化时 这两个函数似乎都会触发 我怎样才能限制这
  • 无法读取临时文件

    我正在尝试调用一个外部进程 该进程写入我通过以下方式获得的临时文件与系统临时文件 https hackage haskell org package temporary 1 3 docs System IO Temp html v with
  • 是否可以迭代 Lucene 索引中存储的文档?

    我有一些文档存储在带有 docId 字段的 Lucene 索引中 我想获取存储在索引中的所有 docId 还有一个问题 文档数量约为 300 000 因此我希望以大小为 500 的块获取此 docId 是否可以这样做 IndexReader
  • Objective-C 中如何检查一个字符串是否包含另一个字符串?

    如何检查字符串 NSString 包含另一个较小的字符串 我希望有这样的事情 NSString string hello bla bla NSLog d string containsSubstring hello 但我能找到的最接近的是
  • GetMapping 和 PostMapping 注释

    我对这个操作有疑问 创建此类控制器的工作原理 Controller public class StudentController RequestMapping value student method RequestMethod GET p
  • 云功能完成延迟太多

    这是我正在使用的云功能当发货人接受订单时向店主发送通知 但有时至少需要 20 秒才能完成 更常见的是需要 3 分钟以上 我的其他云功能运行得很好 无法找出此功能的问题 exports onChangeOfOrderStatus functi
  • 连接组件标签 - 实施

    几天前我问过类似的问题 但我还没有找到解决问题的有效方法 我正在开发一个简单的控制台游戏 我有一个像这样的二维数组 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 我试图找到由相邻 1 4
  • 本地化系统生成的状态消息

    我在 NET 环境中工作 系统偶尔会为客户生成日志条目 然后 消息将附加到客户日志中 以便稍后查看 例如 如果客户正在订阅新服务 或者客户付款尝试失败 这些消息将被附加到客户日志中 目前 所有消息都被硬编码到代码中 例如 客户未能完成 XX
  • 正则表达式问题通过curl向Varnish服务器发送BAN请求

    我一直在尝试发送BAN请求通过curl to the Varnish服务器缓存的内容无效 该 url 包含一些供 Varnish 检查的正则表达式 我已成功发送此请求 1 curl X BAN https oursite com produ