Nginx的fastcgi_cache

nginx的proxy_cache是緩存後端內容,而fastcgi_cache則是緩存Nginx+php的fastcgi,即緩存php動態內容.php

fastcgi_cache默認已包含在nginx0.7.48及之後的版本中了.nginx


配置:後端


http段中配置緩存

fastcgi_cache_path /home/cache levels=1:2 keys_zone=cache_php:20m inactive=1d max_size=10m;url


fastcgi_cache_path緩存目錄 /home/cacheserver

levels 設置目錄層級 1:2能夠生成16*256個子目錄內存

cache_php 是緩存空間的名字md5

20m是用多少內存作緩存(頻繁訪問的內容將被放入內存中)it

inactive 默認時效時間,1d表示一天,表示1天沒有被訪問的內容將被清除掉ast

max_size 表示最多用多少硬盤空間


server段php中配置

fastcgi_cache   cache_php;
fastcgi_cache_valid   200 302  1d;
fastcgi_cache_min_uses  1;
fastcgi_cache_use_stale error  timeout invalid_header http_500;
fastcgi_cache_key $host$request_uri;
fastcgi_ignore_headers Cache-Control;


fastcgi_cache 緩存名稱

fastcgi_cache_valid 那些http頭要緩存,緩存時間

fastcgi_cache_min_uses 進過多少次請求後被緩存

fastcgi_cache_use_stale 那些狀況下不用過時緩存

fastcgi_cache_key 定義fastcgi_cache的key,示例中就以請求的URI做爲緩存的key,Nginx會取這個key的md5做爲緩存文件,若是設置了緩存哈希目錄,Nginx會從後往前取相應的位數作爲目錄


fastcgi_ignore_headers 忽略頭部Cache-Control進行緩存


刪除緩存php代碼

$md5 = md5($url);    $cacheFile = '/www/php_cache/' . substr($md5, -1, 1) . '/' . substr($md5, -3, 2) . '/' . $md5;if (!file_exists($cacheFile)) {      exit('緩存不存在。');}if (@unlink($cacheFile)) {       echo '清除緩存成功。';} else {      echo '清除緩存失敗。';}

相關文章
相關標籤/搜索