zoukankan      html  css  js  c++  java
  • 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 '清除缓存失败。';
    }


  • 相关阅读:
    Eclipse相关问题
    分词工具比较(转)
    package-info.java文件详解
    如何在大量jar包中搜索特定字符
    eclipse插件在线发布发布和版本更新(web site) 转
    Peer Code Reviews Made Easy with Eclipse Plug-In
    Eclipse中Ant的配置与测试 转
    astyle 使用说明
    Eclipse远程调试出现“JDWP Transport dt_socket failed to initialize”的解决方案
    记录一个中括号的问题
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429423.html
Copyright © 2011-2022 走看看