Varnishlog 截断用户代理

标签 varnish

我使用以下varnishlog命令(版本为varnish-5.2.1 revision 67e562482,并且我在Ubuntu上运行18.04.3)列出所有ReqHeader:

varnishlog -i ReqHeader -c
User-Agent header 如下所示:
-   ReqHeader      User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Media Center PC 5.0; SLCC1; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C; Lunasc
我发现,对于某些设备(例如上述设备),该行被截断了。目前尚不清楚是在整个行, header 的值还是在用户代理字符串的长度上应用了截断,但是无论如何,截断在某个时候:
  • 全行仅限273个字符
  • User-Agent开头的文本限制为254个字符
  • 用户代理本身限制为242个字符

  • 如何增加截断限制,以便可以显示更长的用户代理?

    最佳答案

    在生命周期结束的 Varnish 5.2 中, the documentation says that the maximum VSL record length is set to 255 bytes. 。这可以通过 vcl_reclen 运行时参数进行配置。
    假设您想将其设置为 4084 字节。您可以通过将以下运行时参数添加到 varnishd 来完成此操作:

    -p vsl_reclen=4084
    
    您始终可以通过运行以下命令来验证此值:
    $ varnishadm param.show vsl_reclen
    vsl_reclen
            Value is: 4084b [bytes] (default)
            Minimum is: 16b
            Maximum is: 4084
    
            Maximum number of bytes in SHM log record.
    

    关于Varnishlog 截断用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66277038/

    相关文章:

    amazon-ec2 - 如何使用 HTTPS 配置带有 Varnish Cache 的 Magento 2

    varnish - 如何以varnishncsa客户端模式日志格式记录后端?

    typo3 - Typo3 后端注销后 Varnish 不会缓存 - be_typo3_user cookie 仍然有效

    caching - varnish param.set 在服务重启后重置为以前的值

    linux - 在端口 8080 上安装 Varnish 会破坏本地环境

    Varnish 3 : Accept JSON returns HTML

    apache - 端到端 HTTP2 - 使用 haproxy、apache 和 varnish - 可能吗?需要吗?

    varnish - 升级 Varnish 配置。 vcl_hit 中的 obj.ttl 和 beresp.ttl 不起作用

    linux - 我们可以在同一系统上运行的两个端口上使用两个 varnish 吗?

    varnish - Varnish的 `vcl_hash`的实现