cache_dir scheme directory size L1 L2 [options]
scheme 存储机制ufs,aufs,coss,diskd,null
directory 缓存文件夹路径
size 缓存文件夹大小
L1 L2 1级和2级目录
options 选项 read-only(只读) max-size(目录中单个文件最大值)
另外,请注意缓存目录的inodes节点数是否足够.
2.磁盘基准设置
cache_swap_low和cache_swap_high指令控制了存储在磁盘上的缓存对象.
cache_swap_low 90
在总共磁盘使用低于cache_swap_low,squid不会删除cache目标.只有高于cache_swap_low,squid会逐渐删除目标.
cache_swap_high 95
该参数的目前用处不多了.
3.磁盘缓存对象大小限制
maxmum_object_size单个缓存对象最大 大小(单位可以是bytes、KB、MB)
minmum_object_size单个缓存对象最小大小(单位可以是bytes、KB、MB)
reply_body_max_size当某个响应大于该值,将立即被删除
4.分配对象到缓存目录
Squid有2个cache_dir选择算法.默认的算法lease-load;替代的算法是round-robin.
least-load算法,就如其名字的意义一样,它选择当前工作负载最小的cache目录。负载概念依赖于存储机制。对aufs,coss和diskd 机制来说,负载与挂起操作的数量有关。对ufs来说,负载是不变的。在cache_dir负载相等的情况下,该算法使用自由空间和最大目标大小作为附加选 择条件。
round-robin算法也使用负载作为衡量标准。它选择某个负载小于100%的cache目录,当然,该目录里的存储目标没有超出大小限制,并且不是只读的。
5.置换策略
cache_replacement_policy指令控制了squid的磁盘cache的置换策略.
squid提供的三种置换策略:
最少近来使用(LRU),贪婪对偶大小次数(GDSF),和动态衰老最少经常使用(LFUDA).
LRU是默认的置换策略,如果要要使用GDSF和LFUDA.你必须要在编译时增加--enable-removal-policies选项.
6.删除缓存对象
squidclient -r >/tmp/foo
该参数将将reload目标文件
7.删除个别对象
squidclient -m PURGE
该参数将删除目标文件
8.删除所有对象
echo '' > /usr/local/squid/var/cache/swap.state
如果要删除所有缓存对象,建议关闭服务,并且格式化分区或者删除缓存目录内容,并从新执行squid -z.
9.refresh_pattern
refresh_pattern指令间接的控制磁盘缓存.
语法:
refresh_pattern [-i] regexp min percent max [options]
regexp参数是大小写敏感的正则表达式
squid按顺序检查refresh_pattern行,当有一行匹配时,将停止搜索.
min参数是分钟数量,它是过期时间的最低时间限制.
max参数是存活相应时间最高限制.
- 假如响应年龄超过refresh_pattern的max值,该响应过期;
- 假如LM-factor少于refresh_pattern百分比值,该响应存活;
- 假如响应年龄少于refresh_pattern的min值,该响应存活;
- 其他情况下,响应过期。
override-expire
该选项导致squid在检查Expires头部之前,先检查min值。这样,一个非零的min时间让squid返回一个未确认的cache命中,即使该响应准备过期。
override-lastmod改选项导致squid在检查LM-factor百分比之前先检查min值。
reload-into-ims该选项让squid在确认请求里,以no-cache指令传送一个请求。换句话说,squid在转发请求之前,对该请求增 加一个If-Modified-Since头部。注意这点仅仅在目标有Last-Modified时间戳时才能工作。外面进来的请求保留no-cache 指令,以便它到达原始服务器。
ignore-reload该选项导致squid忽略请求里的任何no-cache指令。