使用squid目的:将需要缓存的内容缓存到指定的目录里形成二级目录树,以便快速查找缓存,吐出给访问者。缓存出错时候要方便清理。日志要方便查找问题。
1.cache命中率,是所有HTTP请求中命中的比例
2.通过cvs获得squid源码
3.触发器,它的值是on或者off
4.每次安装squid后,当前默认配置文件存放在$prefix/etc目录下的squid.conf.default
5.端口号
http_port指令告诉squid在哪个端口侦听HTTP请求。默认端口是3128
6.默认的日志文件路径是/usr/local/squid/var/logs
7.定义一个针对客户IP地址的ACL和一个访问规则,告诉squid允许来自这些地址的HTTP请求。squid有许多不同的ACL类型
【很像iptables的配置】
8.主机名
visible_hostname squid.packet-pushers.net
7.对配置文件查错
%squid -k parse
结果可能为
squid.conf line 62: http_access allow okay2
aclParseAccessLine: ACL name 'okay2' not found.
8.初始化cache目录
%squid -z
9.测试squid
%squid -N -d1
结果可能为
2003/09/29 12:57:52| Starting Squid Cache
version 2.5.STABLE4 for i386-unknown-freebsd4.8...
2003/09/29 12:57:52| Process ID 294
2003/09/29 12:57:52| With 1064 file descriptors available
2003/09/29 12:57:52| DNS Socket created on FD 4
10:squid 作为服务器运行
%squid -s
或/usr/local/squid/sbin/squid -s
11:停止squid
%squid -k shutdown
12 滚动日志文件
例子:
crotbl -e
0 4 * * * /usr/local/squid/sbin/squid -k rotate
13基本acl类型
(1)ip地址
acl Foo src 172.16.44.21/255.255.255.255
acl Foo url_regex -i ^http://www
(2) acl MyNetwork src 192.168.0.0
(3)acl AdServers dst 1.2.3.0/24
(4)acl B dstdomain www.squid-cache.org
(5)acl LocalHosts srcdomain .users.example.com
(6)acl Uploads method PUT POST
(7)acl FTP proto FTP
(8)acl FTPMP3 url_regex -i ^ftp://.*/.mp3$
(9)acl Mozilla browser Mozilla
(10)acl AuidoFileUploads req_mime_type -i ^audio/
(11)acl NumberInName ident_regex [0-9]
(12)acl Admins proxy_auth_regex -i ^admin
(12)acl Foo BadClients "/usr/local/squid/etc/BadClients"
(13)acl Admins proxy_auth Pat Jean Chris
(14)acl IPForHostname dstdom_regex ^[0-9]+/.[0-9]+/.[0-9]+/.[0-9]+$
14.磁盘缓存基础
cache_dir scheme directory size L1 L2 [options]
(1)cache_dir指令是squid.conf配置文件里最重要的指令之一。它告诉squid以何种方式存储cache文件到磁盘的什么位置
(2)scheme 存储方式
(3)参数Directory 该参数是文件系统目录,squid将cache对象文件存放在这个目录下
(4) 参数:Size
该参数指定了cache目录的大小
(5)squid在cache目录下创建二级目录树。L1和L2参数指定了第一级和第二级目录的数量
【重中之重】
(6)Options
15.
cache_swap_low和cache_swap_high指令控制了存储在磁盘上的对象的置换。它们的值是最大cache体积的百分比,这个最大cache体积来自于所有cache_dir大小的总和。例如:
cache_swap_low 90
cache_swap_high 95
16.比maximum_object_size更大的响应不会被缓存在磁盘
17.在某些情况下,你必须从squid的cache里手工删除一个或多个对象
% squidclient -r http://www.lrrr.org/junk >/tmp/foo
rm -rf oldcache &
18.清空缓存
refresh_pattern [-i] regexp min percent max [options]
19.cache拦截
20.与其他squid会话
通常把一组互相转发请求的cache(或代理)叫做cache堆叠。把cache堆叠的成员叫做邻居或对等伙伴。邻居cache有2种关系:父子或姐妹。
【类似于voip中的邻居gk】
21.重定向器是squid的外部程序,它重写来自客户请求的URI
【类似sip里面的重定向服务器】
22.验证辅助服务器
23.日志文件
(1)cache.log包含多种消息,例如Squid的配置信息、性能警告、以及严重错误。
(2)Squid把关于HTTP事务的关键信息存放在access.log里。
(3)access.log包含很多信息,远不止你简单的浏览该文件所见。为了完整的浏览,必须使用第三方的日志文件分析包。你可在Squid的web页面的链接里,找到它们的列表。或者直接访问:http://www.squid-cache.org/Scripts/.
最流行的工具之一是Calamaris -- 一个Perl脚本,解析日志文件并产生基于文本的或HTML的报告。
(4)可选的referer.log包含了来自客户端请求的Referer头部。
(5)可选的useragent.log包含来自客户端请求的User-Agent头部值
(6)swap.state文件是目标写入cache目录、或从cache目录删除的日志写照。