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

Nginx的fastcgi_cache的更多相关文章

  1. Nginx模块fastcgi_cache的几个注意点 转

    Nginx模块fastcgi_cache的几个注意点   去年年底,我对nginx的fastcgi_cache进行摸索使用.在我的测试过程中,发现一些wiki以及网络上没被提到的注意点,这里分享一下. ...

  2. 【摘自张宴的"实战:Nginx"】使用nginx的fastcgi_cache缓存php输出的内容

    亲自测试发现,fastcgi_cache虽然可以缓存生成的php输出的文件,但是有个弊端,在缓存的失效时间之内,你继续访问这个地址,输出的内容没有发生变化,即使数据库新增了数据或者删除了数据,所以不适 ...

  3. 利用nginx的fastcgi_cache模块来做缓存

    nginx不仅有个大家很熟悉的缓存代理后端内容的proxy_cache,还有个被很多人忽视的fastcgi_cache. proxy_cache的作用是缓存后端服务器的内容,可能是任何内容,包括静态的 ...

  4. nginx利用fastcgi_cache模块缓存

    nginx不仅有个大家很熟悉的缓存代理后端内容的proxy_cache,还有个被很多人忽视的fastcgi_cache.proxy_cache的作用是缓存后端服务器的内容,可能是任何内容,包括静态的和 ...

  5. Nginx模块fastcgi_cache的几个注意点

    fastcgi响应http请求的结果中,响应头包括Expires、Cache-Control、Set-Cookie三个,都会可能不被cache. thinkphp3.0禁止session自动启动 co ...

  6. 使用fastcgi_cache加速你的Nginx网站

    很久以前在TW上挖了个坑,说nginx的fastcgi_cache是被大家忽视的一大金矿,今天把这个坑填上. 对于变化不太频繁的数据,大家都比较喜欢存Memcached以减少数据库的读取,但还是会有语 ...

  7. RedHat7配置Nginx实现多域名虚拟主机的SSL/TLS认证(实现单IP以不同证书服务于不同域名)

    以RedHat7(64bit)平台为例 如果RedHat源没法用,可以使用EPEL源 # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-rel ...

  8. 【nginx】关于fastcgi_cache

    一.简介 Nginx版本从0.7.48开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当做Key,用Md5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在该目 ...

  9. Nginx fastcgi_cache权威指南

    一.简介 Nginx版本从0.7.48开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当做Key,用Md5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在该目 ...

随机推荐

  1. C# 常用正则表达式

    // 匹配移动手机号 @"^1(3[4-9]|5[012789]|8[78])\d{8}$"; // 匹配电信手机号   @"^18[09]\d{8}$";   ...

  2. hdu 4302 优先队列

    进一步学习了优先队列的用法 题意:一只小动物在直线上走,起始位置为零,之后会出现食物,动物要去距离自己最短的食物那,若两边的食物距离相等,则选择之前走的方向的食物 0 x,代表x的位置出现了食物,1代 ...

  3. Winedt打开tex文件报错error reading的解决方案

    我刚装就发现winedt打开一些.tex文件时会出现reading error,然后看不到任何文字(网上有人讨论打开是乱码的问题,但是我的是完全看不到任何东西),我的系统winxp,网上有人说好像是和 ...

  4. helpDB

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...

  5. Myeclipse 60.激活

    Myeclipse 用来开发java web应用是十分的方便的,不过如果没有激活的话,用起来感觉会非常不爽. 当然,个人来说还是非常支持正版的,也鼓励大家支持正版. 好了,下面介绍一下怎么破解Myec ...

  6. XML的验证模式

    XML文件的验证模式保证了XML文件的正确性,而比较常用的验证模式有两种:DTD和XSD. DTD与XSD区别 DTD(Document Type Definition)即文档类型定义,是一种XML约 ...

  7. BeagleBone Black项目实训手册(大学霸内部资料)

    BeagleBone Black项目实训手册(大学霸内部资料) 介绍:本教程是<BeagleBone Black快速入门教程>的后续教程.本教程以项目操作为主,讲解LED项目.声音项目.传 ...

  8. 手持扫描打印终端POS机应用商场零售批发移动销售开单

    无线开单系统,通过此无线开单系统,使用者可以进行日常的盘点.开单等作业.与进销存软件实时对接,可以提供给使用者即时.准确的库存数量.商品价格等信息.手持系统易上手.一次配置即可使用,极大的方便了使用者 ...

  9. 分拆素数和[HDU2098]

    分拆素数和 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. LCA的五种解法

    标准求法 //O(nlogn)-O(logn) #include<cstdio> #include<algorithm> using namespace std; ; ],to ...