服务器代理缓存技术:squid
squid 用一个单独,非模块,i/o驱动来处理客户请求,支持协议有:http.ftp.ssl.wais
简单原理:
1. 结构:若干磁盘==》若干分区==》若干目录
2. 查询:请求==》hash table ==》 digest table ==》 文件
hash table:类似提纲 digest table:类似目录
3. 工作关系: child-parent 和 sibling
sibling:邻居关系
常用命令: #/usr/local/squid/sbin/squid -z // 初始化缓存空间 ps:有问题,常见是目录权限问题 chown –r squid:squid /cachex #/usr/local/squid/sbin/squid -k parse //检查squid.conf语法配置 #/usr/local/squid/sbin/squid -n -d1 //前台输出 #/usr/local/squid/sbin/squid –s //后台运行 #/usr/local/squid/sbin/squid -k shutdown //关闭服务 #/usr/local/squid/sbin/squid -k reconfigure // 载入新的配置文件 #/usr/local/squid/sbin/squid -k rotate 轮循日志 把squid 添加到系统启动项 编辑 /etc/rc.d/rc.local 添加如下行: /usr/local/squid/sbin/squid –s #more /usr/local/squid/var/logs/access.log | grep tcp_mem_hit 该指令可以看到在squid 运行过程中,有哪些文件被squid 缓存到内存中, 并返回给访问用户。 #more /usr/local/squid/var/logs/access.log | grep tcp_hit 该指令可以看到在squid 运行过程中,有哪些文件被squid 缓存到cache 目录中,并返回给访问用户。 #more /usr/local/squid/var/logs/access.log | grep tcp_miss 该指令可以看到在squid 运行过程中,有那些文件没有被squid 缓存,而 是向原始服务器获取数据并返回给访问用户。 squid命中率分析 squid/bin/squidclient -p 80 mgr:info //一些运行状态信息 squid/bin/squidclient -p 80 mgr:5min //5分钟信息 取得squid 内存使用情况: squidclient -p 80 mgr:mem #取得squid 已经缓存的列表: #squidclient -p 80 mgr:objects 取得squid 的磁盘使用情况: squidclient -p 80 mgr:diskd 强制更新某个url : squidclient -p 80 -m purge http://www.xxxx.com/ static.php更多的请查看: squidclient-h 或者 squidclient -p 80 mgr: 查命中率: /usr/local/squid/bin/squidclient -h 1.1.1.1 -p80 mgr:info /usr/local/squid/bin/squidclient -h 具体的ip -p80 mgr:info