squid

web版清除squid缓存V1.0[原创]

一直以来蚊子就想解放自己,让想更新图片的人自己去刷新squid,然后看到图片的更新情况,现在终于实现了,我的第一版web方式刷新squid缓存的小应用诞生了,特别说明的是,这个版本的功能还非常的有限,每次只能清除一台squid上的一个url,不过蚊子坚信,之后我会逐渐完善这个小应用。

先来说说这个程序的实现原理吧。squid是用purge来清除缓存,purge是squid专有的一个http的header,默认情况下squid是禁止使用purge的,需要在squid.conf文件中进行配置才可以,配置方法如下

acl localhost src 127.0.0.1/32
acl purge method PURGE
http_access allow purge localhost
http_access deny purge

这样配置完之后就可以使用squidclient在squid本机进行清除缓存操作

squidclient –p port –m purge http_url

其实知道了清除squid缓存用的是purge header,那就可以通过telnet模仿squidclient命令了,方法如下

telnet 127.0.0.1 80
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
输入:
purge http://10.192.14.160/tupian/IMG_0303.JPG HTTP/1.0\r\n

回车后如果返回200 ok说明被刷新了,如果返回的是404 Not Found说明一开始就没缓存

蚊子的这个小应用基本就是遵照上面的这个原理实现的,程序的使用方法很容易,只需要lamp的环境就行,同时,需要授予运行purge_cache程序的机器有执行purge的权限,squid的配置方式和上面的基本相同

acl purge method PURGE
acl purge_host src ip/mask
acl localhost src 127.0.0.1/32
http_access allow purge localhost
http_access allow purge purge_host
http_access deny purge

其中purge_host是允许Purge Cache程序的机器的ip地址

下载了我的那个程序后,需要修改purge_cache.php文件中的

# 定义squid信息
define(“SQUID_HOST”        , “192.168.122.2”);  将这里的ip改成你实际的squid的ip地址
define(“SQUID_PORT”        , “80”);

上张截图吧:

程序可以到下载:http://ishare.iask.sina.com.cn/f/9517901.html

在使用的过程中如果大家有啥好的想法和建议,千万别不好意思说出来。

Related Post

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *