• Nginx的fastcgi_cache


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


  • 相关阅读:
    Shell学习(四)Shell运算符
    Shell学习(三)Shell参数传递
    Shell学习(二)Shell变量
    Shell学习(一)认识Shell
    JVM学习(四)JVM调优
    JVM学习(三)JVM垃圾回收
    JVM学习(二)JVM加载类
    JVM学习(一)什么是JVM
    Python学习————包
    Python学习————模块
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429423.html
Copyright © 2020-2023  润新知