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 '清除缓存失败。';}

相关文章
相关标签/搜索