-
-
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 rn";
- 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.url の代わりに purge を使用する必要があります。
2. コード:
-
- 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 ~ ^/$ rn";
- }else{
- $out = " purge.url {$url} rn";
- }
- fputs ($fp, $out);
- $out = fgets($ fp, 4096);
- fclose ($fp);
- return $out
- }
- }
コードをコピー
|