*取得squid运行状态信息: squidclient -p 80 mgr:info
*取得squid内存使用情况: squidclient -p 80 mgr:mem
*取得squid已经缓存的列表: squidclient -p 80 mgr:objects. use it carefully,it may crash
*取得squid的磁盘使用情况: squidclient -p 80 mgr:diskd
缓存的清理脚本
格式:
qingli.sh
qingli.sh jpg
qingli.sh linuxidc.com 123 bbb jpg
#!/bin/sh squidcache_path="/squidcache" squidclient_path="/home/local/squid/bin/squidclient" #grep -a -r $1 $squidcache_path/* | grep "http:" | awk -F 'http:' '{print "http:"$2;}' | awk -F\' '{print $1}' > cache.txt if [[ "$1" == "swf" || "$1" == "png" || "$1" == "jpg" || "$1" == "ico" || "$1" == "gif" || "$1" == "css" || "$1" == "js" || "$1" == "html" || "$1" == "shtml" || "$1" == "htm" ]]; then grep -a -r .$1 $squidcache_path/* | strings | grep "http:" | awk -F 'http:' '{print "http:"$2;}' | awk -F\' '{print $1}' | grep "$1$" | uniq > cache.txt else grep -a -r $1 $squidcache_path/* | strings | grep "http:" |grep $2$ |grep $3$|grep $4$|grep $5$ |grep $6$| awk -F 'http:' '{print "http:"$2;}' | awk -F\' '{print $1}' | uniq > cache.txt fi sed -i "s/\";$//g" cache.txt cat cache.txt | while read LINE do $squidclient_path -p 80 -m PURGE $LINE done下面是3.1的安装,针对需要3.1部分模块的朋友,但是不推荐用3.1
tar -zxvf squid-3.1.20-20120610-r10455.tar.gz cd squid-3.1.20-20120610-r10455 ./configure --prefix=/usr/local/squid --enable-async-io=100 --disable-delay-pools --disable-mem-gen-trace --disable-useragent-log --enable-kill-parent-hack --disable-arp-acl --enable-epoll --disable-ident-lookups --enable-snmp --enable-large-cache-files --with-large-files make && make install groupadd squid #创建squid用户组 useradd -g squid -s /sbin/nologin squid #创建squid用户,并加入到squid组里,不允许登录系统 chown -R squid /usr/local/squid/ #修改squid的安装目录所属用户为squid用户 mkdir -p /var/cache #创建squid的第一个缓存目录 mkdir -p /var/squid #创建squid的第二个缓存目录 chown squid.squid -R /var/cache /var/squid #设置目录所有者 chmod -R 777 /var/cache /var/squid #设置目录权限 mv /usr/local/squid/etc/squid.conf /usr/local/squid/etc/squid.conf.bak vi /usr/local/squid/etc/squid.conf cache_effective_user squid #运行squid的用户 cache_effective_group squid #运行squid的用户所在的组 visible_hostname squid1.cache.cn #设定squid的主机名,如无此项squid将无法启动 http_port 80 accel vhost vport #代理端口 icp_port 3130 #icp端口 # 配置其他缓存服务器,当squid1在其缓存中没有找到请求的资源时,通过ICP查询去其邻居中取得缓存 cache_peer 10.10.10.21 sibling 80 3130 cache_peer 10.10.10.22 sibling 80 3130 cache_peer 10.10.10.23 sibling 80 3130 # 后端web服务器配置,round-robin表示通过轮询方式将请求分发到其中一台web节点 cache_peer 10.10.10.56 parent 80 0 no-query originserver round-robin name=webServer1 cache_peer 10.10.10.57 parent 80 0 no-query originserver round-robin name=webServer2 cache_peer_domain webServer1 webServer2 .123.com #根据通配域名xuad.com来进行转发 # 下面三行是配置访问控制的 http_access allow all #允许以上所有规则通过 # URL中包含cgi-bin和以https:\\开头的都不缓存,asp、cgi、php、jsp等动态页面也不缓存 hierarchy_stoplist cgi-bin ? hierarchy_stoplist -i ^https:\\ ? acl QueryString urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi acl denyssl urlpath_regex -i ^https:\\ no_cache deny QueryString no_cache deny denyssl # 日志和缓存目录的设置 cache_log /usr/local/squid/var/logs/cache.log #cache.log日志文件存放目录 access_log /usr/local/squid/var/logs/access.log squid #access.log日志文件存放目录 cache_dir aufs /var/cache 1024 16 256 #设定缓存目录cache,目录容量最大1024M,16*256级子目录 cache_dir aufs /var/squid 3072 16 256 #设定缓存目录squid,目录容量最大3072M,16*256级子目录 cache_mem 128 MB #squid用于缓存的内存容量 # 当缓存目录空间使用达到95%以上时,新的内容将取代旧的内容,直到空间又下降到90%才停止这一活动 cache_swap_low 90 cache_swap_high 95 # 设置存储策略 maximum_object_size 4096 KB #能缓存的最大对象为4M maximum_object_size_in_memory 80 KB #内存中缓存的最大对象80K ipcache_size 1024 #缓存DNS解析得到的IP,最大单个对象为1024K ipcache_low 90 ipcache_high 95 cache_replacement_policy lru #缓存替换策略 memory_replacement_policy lru #内存替换策略 memory_pools on #开启内存池 memory_pools_limit 32 MB #限制内存池大小为32MB forwarded_for on #开启转发 log_icp_queries off #关闭icp查询日志 forward_timeout 20 seconds #允许转发超时20秒 connect_timeout 30 seconds #连接到其他机器的最大尝试时间 read_timeout 3 minutes #允许读取超时3分钟 request_timeout 1 minutes #允许返回超时1分钟 persistent_request_timeout 30 seconds #允许持续连接超时30秒 client_lifetime 15 minutes #客户端会话保持 shutdown_lifetime 5 seconds negative_ttl 30 seconds #设置错误信息的生存时间 # 允许一个IP最大并发数为50 acl OverConnLimit maxconn 50 http_access deny OverConnLimit client_persistent_connections off #对客户端长连接KeepAlive这个参数的支持 server_persistent_connections on # 开启服务端的KeepAlive,web端要开启KeepAlive,不然这里打开是没用的 tcp_recv_bufsize 65535 bytes #TCP套接字接收缓冲区大小 half_closed_clients off #当客户与squid的连接处于半关闭状态时,允许squid立即关闭连接 via on #开启转发循环的检测 request_header_access via deny all #避免由于两台squid的主机名一样而返回403错误 httpd_suppress_version_string off #错误页面不显示squid的版本信息 ie_refresh off #是否允许对旧版本的IE浏览器强制刷新页面
/usr/local/squid/sbin/squid -N –z
/usr/local/squid/sbin/squid