nginx开启fastcgi缓存

 超哥  nginx  2016-07-26  10574  发表评论

nginx的nginx.conf中http模块配置:

fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=cfcache:30m inactive=1d max_size=1g;
fastcgi_cache_methods GET HEAD;
fastcgi_cache cfcache;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_cache_key $http_user_agent$request_method$scheme$host$request_uri;
fastcgi_ignore_client_abort on;

 

参数解析:
fastcgi_temp_path:临时目录

fastcgi_cache_path:fastcgi_cache缓存目录, 只能在http配置项里配置

levels:目录层级,比如1:2会生成16*256个字目录

keys_zone:这个缓存空间的名字,fastcgi_cache 使用这个值

inactive:默认失效时间

max_size:表示最多用多少硬盘空间

fastcgi_cache_valid:定义哪些http头要缓存
fastcgi_cache_min_uses:URL经过多少次请求将被缓存
fastcgi_cache_use_stale:定义哪些情况下用过期缓存
fastcgi_cache_key:定义fastcgi_cache的key,示例中就以请求的URI作为缓存的key,Nginx会取这个key的md5作为缓存文件,如果设置了缓存哈希目录,Nginx会从后往前取相应的位数做为目录
fastcgi_cache:用哪个缓存空间,fastcgi_cache_path的keys_zone值

 

写在最后:

fastcgi_cache缓存的是fastcgi生成的内容。
proxy_cache减少了nginx与php的通信的次数,减轻php和数据库压力,比membercache来的更直接。
弊端是缓存不能更新,也容易会出现混乱。但是不是没有解决办法,这个就需要折腾了

wordpress和fastcgi的例子:
WordPress的fastcgi cache缓存更新脚本
解决Fastcgi_cache移动版与Web版缓存混乱问题

所有评论
加载评论 ...
发表评论