孤独是一种态度
Squid
Squid 防盗链配置
四 6th
acl URL url_regex -i .*
acl DOMAIN referer_regex -i .www.baidu.com www.google.com #允许的引用的域名
http_access allow URL DOMAIN
acl NULLREF referer_regex -i ^$ #这个是直接用URL访问,没有引用页。
http_access allow NULLREF
acl hasref referer_regex -i .+ #不在允许的引用域名里的都拒绝
http_access deny hasref doubanurl
原创文章,转载请注明: 转载自gjw_apparitor 博客
本文链接地址: Squid 防盗链配置
squid 详解
四 6th
一、squid安装
http://www.squid-cache.org/Versions/v2/2.6/cfgman/index.html
tar zxvf squid-2.6.STABLE22.tar.gz
cd squid-2.6.STABLE22
./configure –prefix=/home/squid –enable-dlmalloc \
–enable-gnuregex \
–enable-async-io \
–enable-storeio=aufs,diskd,ufs \
–enable-snmp \
–enable-cachemgr-hostname \
–enable-arp-acl \
–enable-large-cache-files \
–disable-internal-dns \
–disable-ident-lookups \
–enable-truncate \
–with-maxfd=655360 \
–enable-forw-via-db \
–enable-cache-digests \
–enable-referer-log \
–enable-useragent-log \
–enable-delay-pools \
–enable-kill-parent-hack \
–enable-carp \
–enable-icmp \
–enable-poll \
–with-pthreads \
–enable-ssl
make
make install
更多 >
原创文章,转载请注明: 转载自gjw_apparitor 博客
本文链接地址: squid 详解
squid manage
四 6th
基本的使用方法
# /home/squid/bin/squidclient -p 80 mgr:menu
管理界面
取得squid运行状态信息: squidclient -p 80 mgr:info
取得squid内存使用情况: squidclient -p 80 mgr:mem
取得squid已经缓存的列表: squidclient -p 80 mgr:objects #可能会引起squid崩溃。
取得squid的磁盘使用情况: squidclient -p 80 mgr:diskd
取得squid ipcache状态信息squidclient -p 80 mgr:ipcache
原创文章,转载请注明: 转载自gjw_apparitor 博客
本文链接地址: squid manage
squid 优化
四 6th
优化:
在 Linux 上配置消息队列,增加下列行到/etc/sysctl.conf:
kernel.msgmnb=8192
kernel.msgmni=40
kernel.msgmax=8192
kernel.shmall=2097152
kernel.shmmni=32
kernel.shmmax=16777216
SQUID优化 range_offset_limit
Published June 15th, 2006 in Tech
range_offset_limit 主要用在优化各种多线程下载攻击和在线流媒体播放下的squid,缺省是0,也就是说只要client发过来的http header里包含了“Range:” ,squid会把这个请求转到后端http server,最致命的是,http server返回的内容并不会进入squid的cache store。
在squid刚启动时,cache store并没有多少内容,而多线程的HTTP下载又不能cache,这样会导致squid的命中率很低,squid效率差。 range_offset_limit就派上用场了,把它的值设置为-1;然后squid会把Range头去掉,而从后端http server把内容全部抓下来,放到cache store里,随后的对该cache的访问就不再转发到后端http server,大大提高命中率。
range_offset_limit设置成-1后,squid的hit rate统计可能会显示负数,是个bug,等squid把大部分后端http server的内容放到cache store后(比如1~2天),把range_offset_limit改成0,统计数据就会显示正常了。呵呵
更多 >
原创文章,转载请注明: 转载自gjw_apparitor 博客
本文链接地址: squid 优化
squid 对gzip压缩请求的过程 (转贴)
四 6th
squid 对gzip压缩请求的过程 (转贴)
转载:http://squidcn.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d4%26ayear%3d2008
Squid 能否正确的处理gzip,完全取决于realserver会否发送正确的Vary:头部。一般来说,反向代理环境里,自己能控制realserver。而 采用Apache这样的标准web服务器,可配置mod_deflate让它发送正确的Vary:头部。这个头部的作用,就是指示squid,应该根据客 户端的请求方式不同,返回不同的压缩或非压缩目标。
浏 览器请求squid上的某个目标,假设该目标在squid上有压缩过的缓存,该缓存同时包括一个”Vary:”头部(按照RFC 2616协议,对压缩过的内容Apache必须返回该头部给squid)。Squid会根据缓存里的Vary头部的值和请求头部进行匹配,如果请求头部里 包含了Accept-Encoding相应值,则squid返回压缩过的目标给浏览器。相反,如果请求头部里没有包含Accept-Encoding字段 (通常是http/1.0方式),则squid会将请求转发给realserver。按照标准,Squid不允许发送压缩过的目标拷贝给不接受 Encoding的浏览器。
Squid的请求到了realserver,mod_deflate返回非压缩的内容给Squid。这个响应也包含Vary头部,但不 是压缩的。squid拿到这个响应后,更新自己的缓存(squid的缓存目标存储结构是以url为key的哈希,就是同一个url下只能存储一份 cache目标),并将响应返回给客户端。
下一次如果客户的请求又包含了Accept-Encoding字段,squid会根据缓存目标的Vary头部,再去realserver取一份压缩的内容返回给客户端,并更新自己的缓存。
所以,在上述机制下,squid对gzip的兼容没有问题。
但是,这里有2个明显的问题:
1. 对某个cache住的目标,一个http/1.0请求可能会导致squid强制更新其缓存。但接下来的另一个http/1.1请求又会导致squid再次更新缓存。这就极大的降低了cache命中率。
2. 某些客户端,如IE6及以下,如果发送http/1.0的请求,realserver会返回没有压缩过的内容,同时包含一个Vary:头部。这些客户端不能处理这个头部,结果就导致目标无法下载。这是IE的bug,我们做不了什么。但碰到这种情况,用户会投诉你。
原创文章,转载请注明: 转载自gjw_apparitor 博客
本文链接地址: squid 对gzip压缩请求的过程 (转贴)
优化Squid的几个基本因素 (转载)
四 6th
优化Squid的几个基本因素 (转载)
转载:http://squidcn.spaces.live.com/blog/cns!B49104BB65206A10!120.entry
优化Squid的几个基本因素
1. 文件句柄数,这个影响squid的基本处理能力.在编译squid时加上–with-maxfd=N (squid2.6及以后),N表示一个足够大的整数.另外,在运行squid之前,记得用ulimit调整进程最大文件描述符.squid最终可使用多 少文件句柄,请见squidclient的输出,如squidclient -p80 -h127.0.0.1 mgr:info,最后那段里有关于文件句柄的描述.
2. 如果在Linux下使用squid,那么尽量使用epoll.squid是单进程多路复用的,epoll的效率比select好得多.
原创文章,转载请注明: 转载自gjw_apparitor 博客
本文链接地址: 优化Squid的几个基本因素 (转载)