跳转到主要内容

用于去重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 (31.3 kB 查看哈希值)

上传时间 源代码

支持者