squid主要应用于图片的缓存,一个大型综合网站,会有很多外边的网站来外链我们的图片,造成图片的访问量很大,从而造成带宽的极大浪费。squid的防盗链功能很好地预防了这种情况的发生。配置如下:
acl allowdomain referer_regex -i "/etc/squid/domain.txt" .aaaa.com .bbbb.com //这里是不设置防盗链的域名,并且可以是一个域名列表文件(/etc/squid/domain.txt)
acl nullref referer_regex -i ^$
acl hasref referer_regex -i .+
http_access allow nullref
http_access allow allowdomain
http_access deny hasref
deny_info http://www.example.com/test.jpg hasref
acl allowdomain referer_regex -i "/etc/squid/domain.txt" .aaaa.com .bbbb.com //这里是不设置防盗链的域名,并且可以是一个域名列表文件(/etc/squid/domain.txt)
acl nullref referer_regex -i ^$
acl hasref referer_regex -i .+
http_access allow nullref
http_access allow allowdomain
http_access deny hasref
deny_info http://www.example.com/test.jpg hasref
0
以下内容来源网上:
见下面的内容。我设置的例子是在squid上对mp3和wma进行控制防盗链.其实原理很容易啦,主要是对referer进行控制,更加高级的大家可以研究一下用cookie来进行控制。有空我也写个出来.
acl wmvurl url_regex -i \.mp3$ \.wma$ \.exe$
#要控制的后缀,i不区分大小写,$以后缀名结尾
acl phpoaref referer_regex -i ^http://.*\.php-oa\.com
#可以链接的网站,^url开始 .*任意字符串的通配符 \.将元字符转意为普通的.号,这个正则表达式的意思是以http://开头,2级域名不管是什么bbk.php-oa.com或者xxx.php-oa.com全部匹配。
acl legalplayer browser -i Firefox ^NSPlayer ^contype$ ^rma ^windows-media-player ^foobar2000 ^RealMedia ^RealPlayer
#要在线直播的软件 ^开始,$结尾
http_access allow legalplayer wmvurl
http_access allow phpoaref wmvurl
#先让上面这些条件都可以的,让他们可以通过
http_access deny !phpoaref wmvurl
http_access deny !legalplayer wmvurl
#先accept后deny.
deny_info http://xxxx/error.jpg phpoaref
#deny时出错时,给显示的出错的图.
见下面的内容。我设置的例子是在squid上对mp3和wma进行控制防盗链.其实原理很容易啦,主要是对referer进行控制,更加高级的大家可以研究一下用cookie来进行控制。有空我也写个出来.
acl wmvurl url_regex -i \.mp3$ \.wma$ \.exe$
#要控制的后缀,i不区分大小写,$以后缀名结尾
acl phpoaref referer_regex -i ^http://.*\.php-oa\.com
#可以链接的网站,^url开始 .*任意字符串的通配符 \.将元字符转意为普通的.号,这个正则表达式的意思是以http://开头,2级域名不管是什么bbk.php-oa.com或者xxx.php-oa.com全部匹配。
acl legalplayer browser -i Firefox ^NSPlayer ^contype$ ^rma ^windows-media-player ^foobar2000 ^RealMedia ^RealPlayer
#要在线直播的软件 ^开始,$结尾
http_access allow legalplayer wmvurl
http_access allow phpoaref wmvurl
#先让上面这些条件都可以的,让他们可以通过
http_access deny !phpoaref wmvurl
http_access deny !legalplayer wmvurl
#先accept后deny.
deny_info http://xxxx/error.jpg phpoaref
#deny时出错时,给显示的出错的图.
0
本帖最后由 無名世界 于 2014-11-10 10:52 编辑
###设置防图片盗链,其中aaa.com和bbb.com分别是虚拟主机的域名,referer中必须包含有aaa.com或bbb.com的域名才能访问图片#### acl picurl url_regex -i .bmp$ .png$ .jpg$ .gif$ .jpeg$
acl mystie1 referer_regex -i aaa
http_access allow mystie1 picurl
acl mystie2 referer_regex -i bbb
http_access allow mystie2 picurl
#考虑有些referer为空的情况
acl nullref referer_regex -i ^$
http_access allow nullref
#其它referer,直接拒绝访问
acl hasref referer_regex -i .+
http_access deny hasref picurl
###设置防图片盗链,其中aaa.com和bbb.com分别是虚拟主机的域名,referer中必须包含有aaa.com或bbb.com的域名才能访问图片#### acl picurl url_regex -i .bmp$ .png$ .jpg$ .gif$ .jpeg$
acl mystie1 referer_regex -i aaa
http_access allow mystie1 picurl
acl mystie2 referer_regex -i bbb
http_access allow mystie2 picurl
#考虑有些referer为空的情况
acl nullref referer_regex -i ^$
http_access allow nullref
#其它referer,直接拒绝访问
acl hasref referer_regex -i .+
http_access deny hasref picurl
编辑回复