centos – 鱿鱼和dnf / yum下载缓存

前端之家收集整理的这篇文章主要介绍了centos – 鱿鱼和dnf / yum下载缓存前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对不起,如果这是一个新手问题.我首先尝试描述情况,然后鱿鱼questin将进来.

当前的Fedora / Centos安装在/etc/yum.repos.conf中的正常配置文件中有一个看起来像这样的Metalink.

Metalink=https://mirrors.fedoraproject.org/Metalink?repo=fedora-$releasever&arch=$basearch

这个Metalink实际上使yum / dnf选择一个“随机”服务器站点(由服务器随机地按照地理位置由世界地区根据Metalink客户端的位置选择).
这也用于缓慢下载以切换到下一个更好的站点.

我注意到由于docker构建了大量的下载,这就是我考虑所有机器必须使用的squid代理的原因.但是这种yum / dnf的“随机”策略让我很担心.我确实理解fedora / centos分配这个免费存储库的负载的意图,所以实际上我不想破坏这个策略

鱿鱼能以某种方式智能地检测到客户端只使用“另一个fedora / centos repo url”并智能地缓存这个吗? Metalink列表本身似乎非常稳定(它只是在被问到时改变顺序,但列表本身似乎是相同的).

意图:不要存储同一文件的1000份副本,只是因为它来自不同的服务器.

我怎么用鱿鱼呢?

编辑:有人有经验使用这个http://wiki.squid-cache.org/Features/StoreID来缓存dnf / yum吗?

回答我自己的问题.发现squid支持使用storeid_file_rewrite脚本处理这类问题.唯一棘手的事情是获得一个有效的URL列表,它们代表相同的存储库.到目前为止似乎工作正常.

添加到squid.conf以下

store_id_program /usr/lib64/squid/storeid_file_rewrite /etc/squid/fedora.db
store_id_access allow localnet
store_id_access deny all

获取fedora.db的内容(此时缓存fedora 25)是获取镜像列表中的URL的一些技巧

basearch="x86_64"
releasever=25
mirrorlist="https://mirrors.fedoraproject.org/Metalink?repo=fedora-$releasever&arch=$basearc
curl -s "$mirrorlist" >tmp.db

您需要将“tmp.db”结果中的“url”转换为此处说明的格式http://wiki.squid-cache.org/Features/StoreID/DB.这可能是自动化的(任何志愿者?)

然后你会得到像这样的“fedora.db”,它在上面的squid.conf中使用.

^http:\/\/ftp\.halifax\.rwth-aachen\.de\/fedora\/linux\/releases\/25\/Everything\/(x86_64\/[a-zA-Z0-9\-\_\.\/]+rpm)$   http://repo.mirrors.squid.internal/fedora/25/$1
^http:\/\/mirror2\.hs-esslingen\.de\/fedora\/linux\/releases\/25\/Everything\/(x86_64\/[a-zA-Z0-9\-\_\.\/]+rpm)$       http://repo.mirrors.squid.internal/fedora/25/$1
^http:\/\/fedora\.tu-chemnitz\.de\/pub\/linux\/fedora\/linux\/releases\/25\/Everything\/(x86_64\/[a-zA-Z0-9\-\_\.\/]+rpm)$     http://repo.mirrors.squid.internal/fedora/25/$1

... much more

编辑:替代方案,一个更危险的路径,但也许也足够了,这样一个更全局的模式匹配:

\/fedora\/linux\/releases\/([0-9]+)\/Everything/x86_64\/(.*)$  http://repo.mirrors.squid.internal/fedora/releases/$1/$2
\/fedora\/linux\/updates\/([0-9]+)\/x86_64\/(.*)$      http://repo.mirrors.squid.internal/fedora/updates/$1/$2

资料来源:

> http://wiki.squid-cache.org/Features/StoreID
> http://wiki.squid-cache.org/Features/StoreID/DB

原文链接:https://www.f2er.com/centos/373819.html

猜你在找的CentOS相关文章