缓存管理器 (cachemgr.cgi) 是一个 CGI 实用程序,用于显示正运行的 Squid 进程占用内存的相关统计数字。这也是在不登录服务器的情况下,管理缓存和查看统计数字的一种更便捷的方式。
首先,必须在系统上运行 Web 服务器。按第 40 章 Apache HTTP 服务器中所示配置 Apache。要检查 Apache 是否已在运行,以 root 身份输入命令 rcapache status。如果显示如下消息:
Checking for service httpd: OK Server uptime: 1 day 18 hours 29 minutes 39 seconds
表示 Apache 正在该计算机上运行。如果未运行,则输入 rcapache start 以使用 SUSE Linux Enterprise Server 默认设置启动 Apache。最后一个设置步骤是将文件 cachemgr.cgi 复制到 Apache 目录 cgi-bin:
cp /usr/share/doc/packages/squid/scripts/cachemgr.cgi /srv/www/cgi-bin/
缓存管理器所需的原文件中有一些默认设置。首先定义两个 ACL,然后 http_access 选项将使用这些 ACL 将访问权从 CGI 脚本授权到 Squid。第一个 ACL 最为重要,因为缓存管理器要通过 cache_object 协议尝试与 Squid 通讯。
acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255
以下规则向 Apache 授权对 Squid 的访问权限:
http_access allow manager localhost http_access deny manager
这些规则假定 Web 服务器和 Squid 运行在同一台计算机上。如果缓存管理器与 Squid 间的通讯是另一台计算机上的 Web 服务器发出的,应如例 41.2 “访问规则”所示包含额外的 ACL。
例 41.2. 访问规则
acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl webserver src 192.168.1.7/255.255.255.255 # webserver IP
然后在例 41.3 “访问规则”中添加规则以允许从 Web 服务器访问。
例 41.3. 访问规则
http_access allow manager localhost http_access allow manager webserver http_access deny manager
为管理器配置密码以访问更多选项,如远程关闭缓存或查看有关缓存的更多信息。为此,应配置项 cachemgr_passwd,设置用于管理器和可查看选项列表的密码。此列表在 /etc/squid/squid.conf 中显示为项注释的一部分。
每次一更改配置文件,就应重启动 Squid。使用 rcsquid reload 可以轻松地重启动。
访问相应的网站 - http://webserver.example.org/cgi-bin/cachemgr.cgi。按来浏览不同的统计数字。有关缓存管理器显示的每个项的更多详细信息,请参见 http://www.squid-cache.org/Doc/FAQ/FAQ-9.html 上的 Squid FAQ(常见问题解答)。