用于去重CDN访问的squid 3代理助手
项目描述
squid_dedup是一个squid代理助手,帮助减少使用不同URL(即CDN)访问相同内容时的缓存未命中。
此助手实现了从squid 3开始出现的squid StoreID协议。配置文件中指定的URL模式被重写为一个可能唯一的内部地址。进一步的访问,以相同的方式修改,映射到已存储的对象,即使使用不同的URL。
全局配置选项在主配置文件中指定,该文件必须存在。可以使用当前目录中的–extract命令行开关创建模板。
CDN匹配/替换参数在额外的配置文件中指定。
安装
$ python3 setup.py install
创建自定义配置文件的目录
$ mkdir /etc/squid/dedup
创建主配置文件模板 /etc/squid/squid_dedup.conf
$ cd /etc/squid $ squid_dedup -X
openSUSE CDN
$ gen_openSUSE_dedups
创建 /etc/squid/dedup/opensuse.conf。
激活
将类似值添加到 /etc/squid/squid.conf
store_id_program /usr/bin/squid_dedup store_id_children 20 startup=10 idle=5 concurrency=0 acl getmethod method GET store_id_access deny !getmethod store_id_access allow all
就这么多。
配置
主配置位于 /etc/squid/squid_dedup.conf,并定义了通用行为。
额外的配置文件应存储在 /etc/squid/dedup,例如。
[sourceforge] match: http:\/\/[a-zA-Z0-9\-\_\.]+\.dl\.sourceforge\.net\/(.*) replace: http://dl.sourceforge.net.%(intdomain)s/\1 fetch: false
在此,任何指向dl.sourceforge.net子域的URL都被映射到dl.sourceforge.net.%(intdomain)s,其中%(intdomain)s根据 /etc/squid/squid_dedup.conf中的intdomain值进行替换。
match 是一个匹配 URL 的正则表达式列表,由换行符分隔,所有后续的 URL 都缩进。
replace 是一个单个的替换值。
fetch 是一个可选的布尔标志。如果启用 fetch,对象也会被获取(有一定延迟)。这对于仅从多个来源下载字节范围的数据的客户来说很有用。否则,这种行为会导致对象无法缓存。注意不要重复获取对象。
配置文件的更改会导致默认情况下自动重新加载。
监视
您可能需要在 /etc/squid/squid_dedup.conf 中增加日志级别。
$ less +F /var/log/squid/dedup.log
备注
gen_openSUSE_dedups 实用程序旨在由用户通过 crontab 执行,例如。
$ touch /etc/squid/dedup/opensuse.conf $ chown user:group /etc/squid/dedup/opensuse.conf $ chmod 644 /etc/squid/dedup/opensuse.conf $ su - user > crontab -e
添加类似以下行
0 6 * * * /usr/bin/gen_openSUSE_dedups -vs
致谢
基本思想和 PHP 的参考实现由 Per Jessen 完成。
Per,感谢您在这方面的宝贵讨论。
项目详情
squid_dedup-0.0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0520ed43e0d44fb20b3080614a95c9f97d96c39ea9520d68db80a71d78ce41e7 |
|
MD5 | bbc70f3408d3a87efc85de6595835ad3 |
|
BLAKE2b-256 | 509028685a4b6cd74d77c5da72552fe1f2ac7651153ab1e205243db339e5db1b |