php 连接varnish,PHP 清空varnish 缓存的实现方法

这篇文章主要为大家详细介绍了PHP 清空varnish 缓存的实现方法,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!没法清空文件夹内容 只能清空指定链接缓存

代码如下:

/* 512笔记 www.512Pic.com */

function clearVarnish($ip,$url,$host=null){

$errstr = '';

$errno = '';

$varnist_arr = isset($host) ? $host : C('VARNISH_LIST');

foreach ($varnist_arr as $v){

$fp = fsockopen ($ip, 2000, $errno, $errstr, 2);

if (!$fp) {

return false;

} else {

$out = "purge.url $url \r\n";

fputs ($fp, $out);

$out = fgets($fp , 4096);

fclose ($fp);

return $out;

}

}

}

?>

需要注意的是:传入进来的 url是不能带参数的  如:www.baidu.com/?tn=sougou

因为 purge.url 后清空的是 正则表达式 可以改成 www.baidu.com/(.?)sougou 这样就可以了。

当一台varnish 缓存多个站点内容需要清除指定站点URL 或者单纯清除 站点首页时 需使用purge 而不是purge.url

代码如下:

function varnish_purge($ip, $host='', $url) {

$errstr = '';

$errno = '';

$fp = fsockopen ($ip, 2000, $errno, $errstr, 2);

if (!$fp) {

return $errno;

}else {

if(!empty($host)){

$out = "purge req.http.host == {$host} && req.url ~ ^/$ \r\n";

}else{

$out = " purge.url {$url} \r\n";

}

fputs ($fp, $out);

$out = fgets($fp , 4096);

fclose ($fp);

return $out;

}

}

注:关于PHP 清空varnish 缓存的实现方法的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:

您可能感兴趣的文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值