您的位置:首页 > 运维架构 > Nginx

Nginx的fastcgi_cache

2013-10-13 12:00 323 查看
nginx的proxy_cache是缓存后端内容,而fastcgi_cache则是缓存Nginx+php的fastcgi,即缓存php动态内容.

fastcgi_cache默认已包含在nginx0.7.48及以后的版本中了.

配置:

http段中配置

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

fastcgi_cache_path缓存目录 /home/cache

levels 设置目录层级 1:2可以生成16*256个子目录

cache_php 是缓存空间的名字

20m是用多少内存做缓存(频繁访问的内容将被放入内存中)

inactive 默认时效时间,1d表示一天,表示1天没有被访问的内容将被清除掉

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 '清除缓存失败。';
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: