测试环境: 操作系统 :centos5.0 Web 服务器 :apache2 tomcat 5.5 Jdk : j2se 1.5.5 1. 下载 squid-3.0.STABLE9.tar.gz (测试时最新的版本)。 http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE9.tar.gz 2. 添加用户及组 # useradd squid -M
测试环境:
操作系统:centos 5.0
Web 服务器: apache2 tomcat 5.5
Jdk : j2se 1.5.5
1. 下载squid-3.0.STABLE9.tar.gz (测试时最新的版本)。
http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE9.tar.gz
2. 添加用户及组
# useradd squid -M -c "Squid user" -d /dev/null -s /sbin/nologin
3. 解压并编译安装
tar squid-3.0.STABLE9.tar.gz
cd squid-3.0.STABLE9
./configure --prefix=/data/squid3 --disable-carp --with-aufs-threads=32 --with-pthreads --enable-storeio='ufs,aufs, null' --enable-disk-io='AIO,Blocking' --enable-removal-policies='heap,lru' --disable-wccp --enable-kill-parent-hack --disable-snmp --disable-poll --disable-select --enable-auth=basic --with-aio --disable-ident-lookup --with-filedescriptors=65536
编译参数不做详细介绍请查相关文档
Make
make install
安装完毕。
4. 配置
可能需要创建一些文件 这些都是配置文件中需要调用的(这个要注意文件的属主和权限)
1) [root@www ~]#cd /data/squid3/var/logs/
2) [root@www ~]#touch cache.log
3) [root@www ~]#chmod 755 cache.log
4) [root@www ~]#chown squid:squid cache.log
5) [root@www ~]#touch page_zs_access_log
6) [root@www ~]#chmod 755 page_zs_access_log
7) [root@www ~]#chown squid:squid page_zs_access_log
8) [root@www ~]#cd /data/squid3/etc/
9) 配置squid 配置文件 squid.conf
[root@www ~]# vi squid.conf (192.168.3.11 为服务器的ip 地址)
visible_hostname www.test.com
http_port 80 vhost vport
cache_mem 512 MB
maximum_object_size_in_memory 2048 KB
memory_replacement_policy lru
cache_dir ufs /tmp 512 16 256
max_open_disk_fds 0
minimum_object_size 0 KB
maximum_object_size 32768 KB
logformat
combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %
access_log /data/squid3/var/logs/page_zs_access_log combined
pid_filename/data/squid3/var/logs/squid.pid
cache_store_log none
cache_peer 192.168.3.11 parent 81 0 no-query no-digest originserver name=www
cache_peer_domain www www.test.com
cache_peer_access www allow all
http_access allow all
acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
cache_effective_user squid
cache_effective_group squid
10) [root@www ~]#/data/squid3/sbin/squid -k parse
可以根据这个测试命令用来验证squid.conf 的语法和配置(下面是OK 的如果不OK 会有相应的提示根据提示来修改配置文件)
2008/10/14 21:14:56| Processing Configuration File: /data/squid3/etc/squid.conf (depth 0)
11) [root@www ~]#/data/squid3/sbin/squid -z
用来创建缓存目录
12) vi 一个squid.sh 的启动脚本如下:赋予可执行权限
[root@www ~]#vi squid.sh
#!/bin/sh
#
ulimit -HSn 15000
# this script starts and stops Squid
echo 15000 > /proc/sys/fs/file-max
case "$1" in
start)
/data/squid3/sbin/squid -s
echo -n ' Squid'
;;
stop)
/data/squid3/sbin/squid -k shutdown
;;
esac
#chmod x squid.sh
5. 启动squid
[root@www ~]#./squid.sh start 就可以启动squid 了
查看有没有启动可以
[root@www ~]#ps fax|grep squid
13750 pts /3 S 0:00 _ grep squid
30474 ? Ss 0:00 /data/squid3/sbin/squid -s
30476 ? S 0:01 _ (squid) -s
通过命令lsof -i:80 查看谁占用了80 端口
查看squid 的访问日志。
[root@www ~]# tail – f /data/squid3/var/logs/page_zs_access_log
查看命中率及其他相关信息
[root@www ~]# /data/squid3/bin/squidclient -p 80 -h localhost mgr:info
HTTP/1.0 200 OK
Server: squid/3.0.STABLE9
Mime-Version: 1.0
Date: Tue, 14 Oct 2008 13:22:40 GMT
Content-Type: text/plain
Expires: Tue, 14 Oct 2008 13:22:40 GMT
Last-Modified: Tue, 14 Oct 2008 13:22:40 GMT
X-Cache:来自 www.6558855.com 的 MISS
通过:1.0 www.6558855.com (squid/3.0.STABLE9)
连接:关闭
Squid 对象缓存:版本 3.0.STABLE9
开始时间: 2008 年 10 月 14 日星期二 11:25:50 GMT
当前时间: 2008 年 10 月 14 日星期二 13:22:40 GMT
squid 的连接信息:
数量 客户端访问缓存: 2
数量 收到的 HTTP 请求: 772
数量 收到 ICP 消息: 0
数量 已发送 ICP 消息: 0
数量 排队的 ICP 回复: 0
数量 收到的 HTCP 消息: 0
数量 发送的 HTCP 消息: 0
要求 失败率: 0.00
此后每分钟平均 HTTP 请求数 开始: 6.6
平均ICP 自开始以来每分钟的消息数: 0.0
选择循环 调用:7081542 次,平均 0.990 毫秒
鱿鱼的缓存信息:
点击率% 所有请求的数量: 5分钟:0.0%,60分钟: 89.7%
点击率% 发送的字节数: 5分钟:-0.0%,60分钟: -0.0%
内存命中 占点击请求的百分比: 5分钟:0.0%, 60分钟:0.0%
磁盘命中 占点击请求的百分比:5 分钟:0.0%,60 分钟:0.0%
贮存 交换大小: 104 KB
存储交换容量: 0.0% 使用,100.0% 免费
存储内存 尺寸: 228 KB
存储内存 容量: 0.0% 使用,100.0% 免费
平均对象 尺寸: 10.40 KB
要求 给予取消链接: 68
中位服务时间(秒) 5分钟 60 分钟:
HTTP协议 请求(全部): 0.00000 0.00000
缓存 未命中: 0.00000 0.00000
缓存 点击次数: 0.00000 0.00000
靠近 点击次数: 0.00000 0.00000
未修改的回复: 0.00000 0.00000
域名系统 查找: 0.00000 0.00000
ICP 查询: 0.00000 0.00000
squid 的资源使用情况:
向上 时间: 7009.125 秒
中央处理器 时间: 0.948 秒
中央处理器 用法: 0.01%
CPU使用率, 5 分钟平均值: 0.00%
CPU使用率, 60 分钟平均值: 0.01%
过程 通过 sbrk() 的数据段大小:2968 KB
最大限度 驻留大小:0 KB
页面错误 使用物理 I/O:2
通过 mallinfo() 获取鱿鱼的内存使用情况:
总空间 在竞技场中: 3240 KB
普通的 块: 3194 KB 17块
小的 块: 0 KB 0 块
保持 块: 11472 KB 17块
免费小号 块: 0 KB
自由的 普通块: 45 KB
总计 使用: 14666 KB 100%
全部的 免费: 45 KB 0%
全部的 尺寸: 14712 KB
内存占比:
全部的 已计算: 3001 KB 20%
内存池 已计算: 3001 KB 20%
内存池 下落不明: 11710 KB 80%
memPoolAlloc 调用: 147106
内存池空闲 来电: 145713
squid 的文件描述符用法:
最大限度 文件描述符的数量: 15000
最大 当前使用的文件描述: 14
数量 当前使用的文件描述: 8
文件 排队等候开放: 0
可用的 文件描述符数量:14992
预订的 文件描述符的数量: 100
储存磁盘 文件打开: 0
内部数据结构:
45 商店条目
41 带有 MemObjects 的 StoreEntries
40 热门 对象缓存项
10 磁盘上的对象
6。 关于动态页面的缓存。
如 jsp 页面。
利用标题 为jsp 服务器减压
参与存储的jsp 加入如下程序,进行“Last-Modified ”和“过期 ”的设置;
长 file_lmodified = new File("/tmp/catchmodified".lastModified();
response.setBufferSize(16);
response.setDateHeader("最后修改时间", file_lmodified);
response.setDateHeader("过期", System.currentTimeMillis() / 1000 * 1000 300000);
response.flushBuffer();
%>
7。 添加自动更新记时方式
[root@www ~]# vi 刷新Catch.sh
#/bin/sh
/bin/echo >/tmp/catchmodified
Chmod x 刷新Catch.sh
然后在crontab 里写一句
*/5 * * * * /data/squid3/refreshCatch.sh