PHP 清空 varnish 缓存的详解(包括指定站点下的)
本文是对清空 varnish 的缓存(包括指定站点下的)进行了详细的分析介绍,供大家参考下
没法清空文件夹内容 只能清空指定链接缓存
代码如下:
<?php
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 是不能带参数的
因为 purge.url
后清空的是 正则表达式 可以改成/(.?)sougou 这样就可以了。
当一台 varnish 缓存多个站点内容需要清除指定站点 URL
或者单纯清除 站点首页时 需使
用 purge 而不是 purge.url
代码如下:
function
varnish_purge(
$ip
,
$host
='',
$url
) {
$errstr
= '';
$errno
= '';