通过为许多常用的用户代理缓存条目,使Matomo中的设备检测更快。

默认情况下,Matomo为每个跟踪请求运行数千个正则表达式,以检测浏览器,设备,操作系统,…正在使用,并用于检测用户代理是否是bot。

这个插件改变了这一点,它首先查看特定用户代理是否存在缓存结果,如果存在,则直接从文件系统加载结果。

我们只推荐这个插件,如果你有一个非常高的流量网站(> 200M请求一个月)。根据您的服务器不同,每个跟踪请求可以节省几毫秒(比如5毫秒,这可能是跟踪请求总时间的10%)。

如果您没有那么多流量,那么开销可能就不值得了。

如何设置

配置设置

配置这些值配置/ config.ini.php

[DeviceDetectorCache] access_log_path = "/var/log/httpd/access_log" #访问日志文件的路径此命令需要对该文件具有读权限access_log_regex = "/^(\S+) (\S+) (\S+)\ [[^:]+):(\d+:\d+:\d+) ([^\]]+)\] \"(\S+) (\S+)\" (\S+) (\S+)\"([^\"]*)\" \"([^\"]*)\"$/" #用于提取用户代理的正则表达式regex_match_entry = 14 #定义上述正则表达式的哪个子模式与用户代理匹配num_cache_entries = 200000 #应该缓存多少个用户代理。这个值基本上取决于您的内存和磁盘空间。很可能没有必要改变这一点

测试是否有效

运行这个命令,看看它是否有效:

PHP /path/to/matomo/console device-detect -cache:warm-cache -vvv

它应该显示检测到多少用户代理,如果配置正确,还应该打印最常见的前10个用户代理。

缓存的文件将存储在/ tmp / devicecache /.确保该文件夹具有写访问权。每次运行此命令时,以前创建的缓存项都将被删除。

建立一个cronjob

如果上述测试进展顺利,您需要设置一个定期运行的cronjob(例如每隔几小时或几天)来根据访问日志更新缓存条目。

例如,cronjob需要看起来像这样:

0 8 * * * PHP /path/to/matomo/console device-detect -cache:warm-cache

如果有多个服务器,则需要在处理跟踪请求的每个服务器上设置该命令。


查看并下载特定Matomo版本的插件:

查看并下载特定Matomo版本的插件:


请分享

Baidu