http方式更新varnish的缓存

varnish是非常好用的‘CDN’缓存软件,可以用作图片服务器的扩展使用。

但是图片如果是经常需要更新的,就需要引进更新机制。

Varnish的配置文件里带有定时更新方法。

但是在我的使用过程中,总是发现这个更新方法不是很灵。我使用的是varnish1.1.2。

一时也没有找出什么原因。

就想了通过http方式,进行更新。通过测试,已经成功。

写一个php文件:

<?php
function varnish_purge($ip, $host, $url)
{
$errstr = ”;
$errno = ”;
$fp = fsockopen ($ip, 80, $errno, $errstr, 10);
if (!$fp)
{
return false;
}
else
{
$out = “PURGE {$url} HTTP/1.1\r\n”;
$out .= “Host:{$host}\r\n”;
$out .= “Connection: close\r\n\r\n”;
fputs ($fp, $out);
$out = fgets($fp , 4096);
fclose ($fp);
return true;
}
}
$url=$_GET['u'];
varnish_purge(“192.168.1.167″, “mp.×××××.com”, $url);
varnish_purge(“192.168.1.183″, “mp.×××××.com”, $url);
?>
这样就可以用过http方式更新varnish的缓存,不过发现这种方式处理的速度比较慢。
下面就准备解决这个问题。
posted @ 2010-07-28 16:46  居小齐  阅读(450)  评论(0编辑  收藏  举报