跑步varnishd(varnish-4.1.0 修订版 3041728)并使用
varnishlog -q "BerespStatus >= 500"
我想知道是否可以打印 POST 内容。服务器上正在运行 XML-RPC 服务,有时它会返回 500。日志中没有任何内容,所以我想知道哪个 XMLRPC 方法有问题。
有什么建议 ?
答案1
Varnish(以及 varnishlog 和 varnishncsa)不允许您访问请求或响应中的 http 正文。因此,使用 vanilla varnish 无法实现这一点。
话虽如此,插入内联 C代码到你的 VCL 中。因此,从技术上讲,你可以使用一些自定义 C 代码访问 POST 数据,并使用标准对数将您关心的部分写入日志。
看起来有些现有的 VMOD 可以访问 POST 数据(例如vmod_bodyaccess),但您可能需要做更多的解析才能获得 XML-RPC 方法。
免责声明:除非您真的知道自己在做什么,否则我不会推荐使用内联 C。另外,我还没有尝试过这里提到的任何 VMOD,所以无法判断它们是否合适。