如何设置 squid 仅缓存特定域?

如何设置 squid 仅缓存特定域?

例如,我只想squid缓存*.archive.ubuntu.com被防火墙阻止的 HTTP 内容,而不缓存其他域。

并且,只有 LAN(192.168.0.0/16)用户可以访问缓存内容,但所有用户都允许访问非缓存内容。

User-IP              Dest-Domain                    acl             Expect   
----------------     -----------------------       ------      -------------------------                  
192.168.0.0/16       *.archive.ubuntu.com          allow       Cache Proxy, Fast
192.168.0.0/16       *.other                       allow       Pass Proxy, Slow     
Other                *                             allow       Pass Proxy, Slow

答案1

这有点躲避,但如果你只关心自动缓存 debian/ubuntu 包,请尝试:

apt-get install approx

这要求将客户端配置为从您的代理服务器下载软件包列表,而不是通常的 ubuntu 服务器,但如果您已经使用配置管理软件(如 puppet 或 cfengine),这很容易。

您的 sources.list 文件看起来应该是这样的:

deb  http://my.proxy.tld:9999/ubuntu/  lucid  lucid main restricted universe multiverse
deb http://my.proxy.tld:9999/ubuntu-security/ lucid-security main restricted universe multiverse
...

并且您的 approx.conf 文件如下:

ubuntu http://us.archive.ubuntu.com/ubuntu
ubuntu-security http://security.ubuntu.com/ubuntu
...

相关内容