使用标准输出 Varnish 输出ReqEnd

标签 varnish varnish-vcl

是否可以在VCL中使用std.log输出ReqEnd?我想在varnishncsa日志记录中使用ReqEnd。

最佳答案

我不知道你是否可以在 varnishnsca 中记录 ReqEnd 但你可以记录请求开始时间和 xid。

vcl 示例:

........
C{
    #include <syslog.h>
    #include <sys/time.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
}C

sub vcl_recv {

    C{
        struct timeval detail_time;
        gettimeofday(&detail_time,NULL);
        char start[20];
        sprintf(start, "%lu%06lu", detail_time.tv_sec, detail_time.tv_usec);
        VRT_SetHdr(sp, HDR_REQ, "\020X-Request-Start:", start, vrt_magic_string_end);
    }C

........

sub vcl_deliver {
    set resp.http.X-ID = req.xid;
}
.......

你可以看到它:varnishncsa -F "%{X-Request-Start}o %{X-ID}o"

关于使用标准输出 Varnish 输出ReqEnd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13527886/

相关文章:

webserver - Varnish 配置文件在哪里?

varnish - 如何在 Varnish vcl 中转义双引号

caching - 需要帮助分析 VarnishStat 结果

Varnish 4 不支持缓存控制 : must-revalidate

Varnish 3 - 如何在http header 中设置最大年龄

http - Varnish 重定向

caching - Varnish 缓存丢失-由VCL决定的TTL为0

Varnish HitPass调试

docker - Varnish docker 容器没有响应

postgis - 添加了 Varnish 禁令,但返回了旧对象