varnishlog访问POST body(varnish 4.x)

运行varnishd(varnish-4.1.0修订版3041728) ,并使用日志logging

varnishlog -q "BerespStatus >= 500" 

我想知道,如果有可能打印POST内容。 在服务器上运行XML-RPC服务,有时返回500.在日志中什么也没有,所以我想知道哪个XMLRPC方法是有问题的。

有什么build议么 ?

清漆(因此varnishlog&varnishncsa)不会让您访问请求或响应中的http正文。 因此,使用香草清漆是不可能的。

话虽如此,可以将内联C代码插入到您的VCL中。 因此,从技术上讲,您可以使用一些自定义C代码访问POST数据,并使用std.log将您关心的位写入日志。

看起来有一些现有的VMOD可以访问POST数据(例如vmod_bodyaccess ),但是您可能需要进行更多的parsing,而不是使用XML-RPC方法。

免责声明 :除非你真的知道你在做什么,否则我不会build议你在C里面任何地方。 此外,我还没有尝试过这里提到的任何VMOD,所以不能说出它们是多么合适。