[Nginx] 簡易版 Nginx Cache Purge スクリプト

<?php
if ( isset($_GET['url']) ) {
$url = stripslashes($_GET['url']);
NginxCachePurge::purge($url);
}
Class NginxCachePurge {
const CACHE_LEVELS = '1:2';
const CACHE_DIR = '/var/cache/nginx/proxy_cache';
public static function purge($url) {
$cache_key = self::get_cache_key($url);
$cache = self::get_cache_file($cache_key);
if ( file_exists($cache) && @unlink($cache) ) {
printf('Success purge : %s (%s)', $url, $cache_key) . "\n";
} else {
printf('Failure purge : %s (%s)', $url, $cache_key) . "\n";
}
}
private static function get_cache_key($url) {
return md5($url);
}
private static function get_cache_file($key) {
$levels = preg_split("/:/", self::CACHE_LEVELS);
$path = array();
$path[] = self::CACHE_DIR;
$offset = 0;
foreach ($levels as $l) {
$offset = $offset + $l;
$path[] = substr($key, 0$offset, $l);
}
$path[] = $key;
return join("/", $path);
}
}

[Nginx] 簡易版 Nginx Cache Purge スクリプト” への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中