用于消除cdn访问重复的squid 3代理助手

squid-dedup的Python项目详细描述


Squid重复数据消除是Squid代理帮助程序,有助于在以下情况下减少缓存未命中 使用不同的url(即cdn)访问相同的内容。

此帮助程序实现squid storeid协议,如squid 3所示 向前。配置文件中指定的url模式被重写为 唯一的内部地址。进一步的访问,以同样的方式修改,映射到 已经存储了对象,即使使用不同的url。

全局配置选项在主配置文件中指定,其中 必须存在。可以使用–extract命令行开关创建模板 当前目录。

cdn match/replacement参数在其他配置文件中指定。

安装

$ 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,感谢您对本主题的宝贵讨论。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java RFID不完整输出?   java如何构造一个for循环来查找每个数组的第一个索引的总和   java Eclipse AST解析器正在删除我的规则   安卓如何在java中创建“可重写”配置?   java每次我向应用程序添加图像时,它都会崩溃   Java 8流到文件   EntityNotFoundException的java可能原因   java多线程为什么下面的程序表现得如此怪异?   java footprint soap api+mavenjaxb2plugin   java MongoDB锁定,直到找到结果   java重写Jtable选项卡行为转到下一个可编辑单元格   java关于方法和创建另一个方法   java将人脸与图像分离   java复制Spring批处理作业实例   java TextView不会更改为新设置的文本