nginx fastcgi_nginx中fastcgi-cache缓存使用方法介绍

更新时间:2019-11-21    来源:nginx    手机版     字体:

【www.bbyears.com--nginx】

fastcgi-cache缓存配置

配置自动清空缓存的步骤很简单:

1、检查是否安装ngx_purge_cache模块

nginx -V 2>&1 | grep nginx-cache-purge -o

如果显示nginx-cache-purge即代表已安装


如果没东西输出,则需要先安装:

sudo add-apt-repository ppa:brianmercer/nginx
sudo apt-get update
sudo apt-get install nginx-custom

使用fastcgi_cache加速Nginx站点

说到缓存,想到的大部分都是Memcache、Xcache、Proxy_Cache,FastCgi Cache貌似一直被人忽略中,FastCgi缓存也是不错的(我也最近才听说)

引用某人的一句话:

lnmp一键包没开启fastcgi cache是一大败笔

开启FastCGI Cache步骤非常简单

1、新建文件夹存放缓存文件

Defaultmkdir /home/cache/fcgi -p
1 mkdir /home/cache/fcgi -p

2、修改nginx.conf文件(LNMP一键包目录在/usr/local/nginx/conf/nginx.conf),在http层加入:

Defaultfastcgi_cache_path /home/cache/fcgi levels=1:2 keys_zone=fcgi:15m inactive=1d max_size=1g;

#15m为内存占用  1g为硬盘最大占用空间

12 fastcgi_cache_path /home/cache/fcgi levels=1:2 keys_zone=fcgi:15m inactive=1d max_size=1g;#15m为内存占用  1g为硬盘最大占用空间

3、修改位于vhost目录下的站点文件

Defaultlocation ~ .*\.(php|php5)?$
   {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /home/wwwroot/网站目录$fastcgi_script_name;  #把网站目录修改成自己的
            include        fastcgi_params;
            fastcgi_cache fcgi;    #表示开启FastCGI缓存并为其指定一个名称。
            fastcgi_cache_valid 200 302 301 1h;     #缓存http状态200 302 301 1小时
            fastcgi_cache_valid any 1m; #其他应答代码缓存1分钟。
            fastcgi_cache_min_uses 1;   #设置链接请求几次就被缓存。
            fastcgi_cache_use_stale error timeout invalid_header http_500;    #定义哪些情况下用过期缓存
            fastcgi_cache_key $request_method://$host$request_uri;  #注意一定要加上$request_method作为cache key,否则如果HEAD类型的先请求会导致后面的GET请求返回为空
}

12345678910111213 location ~ .*\.(php|php5)?$   {            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  /home/wwwroot/网站目录$fastcgi_script_name;  #把网站目录修改成自己的            include        fastcgi_params;            fastcgi_cache fcgi;    #表示开启FastCGI缓存并为其指定一个名称。            fastcgi_cache_valid 200 302 301 1h;     #缓存http状态200 302 301 1小时            fastcgi_cache_valid any 1m; #其他应答代码缓存1分钟。            fastcgi_cache_min_uses 1;   #设置链接请求几次就被缓存。            fastcgi_cache_use_stale error timeout invalid_header http_500;    #定义哪些情况下用过期缓存            fastcgi_cache_key $request_method://$host$request_uri;  #注意一定要加上$request_method作为cache key,否则如果HEAD类型的先请求会导致后面的GET请求返回为空}

4、重启nginx即可

Default/etc/init.d/nginx restart
1 /etc/init.d/nginx restart

5、打开站点,看缓存目录是否增大

Defaultdu -sh /home/cache/fcgi

1 du -sh /home/cache/fcgi
link:http://jybb.me/nginx-fastcgi_cache


删除nginx-fastcgi-cache缓存

比如突然发现某个错别字,在后台改好后发现文章之前已被缓存,不知道还要等多久才能刷新,解决办法是删除生成的文件

但想要找到已经可不容易,有两个办法:

一个一个找或者直接删除全部缓存

根据nginx的URL -- key的规则,再使用两层hash来定位文件

因为老高缓存的文件数不多,所以最后的解决办法是 -- 关键字过滤

# 找
grep -r "your keywords" .
# 删
grep -rl "your keywords" . |xargs rm

下面的也可以

find |xargs grep "your keywords"
find |xargs grep -l "your keywords"|xargs rm

顺便记个笔记

# 顺便记一下find限定查找文件和目录

find -type f
find -type d

# grep --help 中-R也很有用!
grep -r --include="*.php"

本文来源:http://www.bbyears.com/caozuoxitong/80464.html