为了提高网站的性能缓存是一把利器,nginx中可以配置fastcig_cache来缓存不需要实时获取的数据实现动静分离,nginx.conf配置如下:

http
{

    …

    fastcgi_connect_timeout 300;#指定连接到后端FastCGI的超时时间
    fastcgi_send_timeout 300;#指定向FastCGI传送请求的超时时间,这个值是已经完成两次握手后向FastCGI传送请求的超时时间
    fastcgi_read_timeout 300;#指定接收FastCGI应答的超时时间,这个值是已经完成两次握手后接收FastCGI应答的超时时间。
    fastcgi_buffer_size 256k;#用于指定读取FastCGI应答第一部分需要多大的缓冲区,这个值表示将使用1个64KB的缓冲区读取应答的第一部分(应答头),可以设置为fastcgi_buffers选项指定的缓冲区大小。
    fastcgi_buffers 4 256k;#指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。一般这个值应该为站点中PHP脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16 16k”、“4 64k”等。
    fastcgi_busy_buffers_size 512k;#默认值是fastcgi_buffers的两倍。
    fastcgi_temp_file_write_size 512k;#表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。
    fastcgi_temp_path /dev/shm/factcgi_temp_path 1 2;#生成fastcgi_cache临时文件目录   

    fastcgi_cache_path   /dev/shm/fastcgi_cache  levels=1:2  keys_zone=PHPCACHE:1024m inactive=15m;  #fastcgi_cache缓存目录,可以设置目录哈希层级,比如2:2会生成256*256个字目录,keys_zone是这个缓存空间的名字,cache是用多少内存(这样热门的内容nginx直接放内存,提高访问速度),inactive表示默认失效时间,max_size表示最多用多少硬盘空间,需要注意的是fastcgi_cache缓存是先写在fastcgi_temp_path再移到fastcgi_cache_path,所以这两个目录最好在同一个分区,从0.8.9之后可以在不同的分区,不过还是建议放同一分区。
    fastcgi_cache_key "$scheme$request_method$host$request_uri";#定义fastcgi_cache的key,示例中就以请求的URI作为缓存的key,Nginx会取这个key的md5作为缓存文件,如果设置了缓存哈希目录,Nginx会从后往前取相应的位数做为目录。
    fastcgi_cache_use_stale error  timeout invalid_header http_500; #定义哪些情况下用过期缓存

    …

在server中使用缓存:

server {

    …

    set $no_cache 0;#设置全部缓存

    location /my {
            set $no_cache 1;#设置不缓存/my目录
            rewrite  ^(.*)$  /index.php/$1  last;
            break;
    }

    location ~ .+\.php($|/) {
            set $script $uri;
            set $path_info "/";
            if ($uri ~ "^(.+\.php)(/.+)") {
                set $script $1;
                set $path_info $2;
            }

            fastcgi_cache   PHPCACHE;
            fastcgi_no_cache $no_cache;
            fastcgi_cache_bypass   $no_cache;
            fastcgi_cache_valid   200 302  1h;
            fastcgi_cache_valid   301      1h;
            fastcgi_cache_valid   any      1m;
            fastcgi_cache_min_uses  1;
            fastcgi_ignore_headers Cache-Control Expires;

            fastcgi_pass 127.0.0.1:9001;
            fastcgi_index index.php?IF_REWRITE=1;
            include fastcgi_params;
            fastcgi_param PATH_INFO $path_info;
            fastcgi_param SCRIPT_FILENAME $document_root/$script;
            fastcgi_param SCRIPT_NAME $script;
        }

清空缓存:

url:http://www.xxx.com/zhouyou.html
组成方式:
    httpGETwww.xxx.com/zhouyou.html
返回md5:
    FB9AAC75CE375A1A2419BD1C4AE90731
第一个目录是截取最后一位数字:1
第二个目录为截取最后两个数字:73

进入/dev/shm/fastcgi_cache/1/73 删除FB9AAC75CE375A1A2419BD1C4AE90731文件

最新文章

  1. OpenGL超级宝典笔记----框架搭建
  2. JS组件系列——两种bootstrap multiselect组件大比拼
  3. 套题 codeforces 361
  4. POJ 1661 Help Jimmy LIS DP
  5. BZOJ1034 [ZJOI2008]泡泡堂BNB
  6. 【部分原创】标准C语言的优先级、结合性、求值顺序、未定义行为和非确定行为浅析
  7. AcitonBar 自定义布局
  8. 解决Boost.Regex对中文支持不好的问题
  9. Winform - 全屏显示
  10. Hive-1.2.1与HBase-1.1.2的整合
  11. 如何快速成长?我的java之路!
  12. bat脚本设置系统环境变量即时生效
  13. 说一说关于破解支付宝AR红包的事
  14. Linq中的Select与Select many
  15. 【数学建模】day09-聚类分析
  16. 查看最新的Google地址
  17. (zhuan) Building Convolutional Neural Networks with Tensorflow
  18. uva10905同一思路的两种做法,前一种WA,后一种AC
  19. JavaScript--事件入门(24)
  20. C++并发编程之std::async(), std::future, std::promise, std::packaged_task

热门文章

  1. 动态的 css——less
  2. mysql插入大量数据
  3. VIM 中 查看{}是否闭合,按%跳转到下个闭合
  4. css系列教程--选择器
  5. C# 数组的应用
  6. 《C++ Primer Plus 6th》读书笔记 - 第九章 内存模型和名称空间
  7. ajax读取txt文件
  8. Oracle EBS-SQL (MRP-2):检查期间主计划录入记录数.sql
  9. Oracle导出空表处理方法
  10. POJ 3484 Showstopper(二分答案)