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. javascript二叉树基本功能实现

    都是常用的功能. 删除是最复杂的.. <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  2. ytu 1301:Excel地址转换(水题,进制转换)

    Excel地址转换 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 41  Solved: 11[Submit][Status][Web Board] D ...

  3. 面试整理之DOM事件阶段

    因为快面试了,打开<JavaScript高级程序设计>,对DOM事件进行整理了下 本文主要解决的问题: 事件流 DOM事件流的三个阶段 先理解流的概念 在现今的JavaScript中随处可 ...

  4. XTU 1242 Yada Number 容斥

    Yada Number Problem Description: Every positive integer can be expressed by multiplication of prime ...

  5. android生成json

    package com.example.zzzz; import org.json.JSONArray; import org.json.JSONException; import org.json. ...

  6. 微信SDK开发学习

    public class MainActivity extends Activity { // 应用程序的id,就是在网上开发平台创建应用的appid public static final Stri ...

  7. 8.Smack类库

    1.登陆IM Connection.DEBUG_ENABLED = true;//首先激活调试模式 1.1建立连接 首先,在启动DSM Message时,客户端通过XMPPConnection与服务器 ...

  8. BZOJ3886 : [Usaco2015 Jan]Moovie Mooving

    f[i]表示用i集合内的电影可以达到的最长时间 f[i]向f[i|(1<<j)]更新,此时的时间为第j部电影在f[i]前的最晚上映时间 先排序一遍离散化后用前缀最大值解决 时间复杂度$O( ...

  9. Spark Streaming实时计算框架介绍

    随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐.用户行为分析等. Spark Streaming是建立在 ...

  10. 【BZOJ】1601: [Usaco2008 Oct]灌水(kruskal)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1601 很水的题,但是一开始我看成最短路了T_T 果断错. 我们想,要求连通,对,连通!连通的价值最小 ...