nginx的cache各种指令说明

perfect_song上传于2012-07-13|(5人评价)|1059人阅读|20次下载|暂无简介|举报文档

   


在手机打开



1.proxy_cache指令

语法:proxy_cache zone_name;

默认值:None

使用环境:http,server,location

指令用于设置那个缓存区将被使用,zone_name的值为proxy_cache_path指令创建的缓存区名称


2.proxy_cache_path指令

语法:proxy_cache_path[levels=number] keys_zone=zone_name:zone_size[inactve=time] [max_size=size];

默认值:None

使用环境:http

该指令用于设置缓存文件的存放路径.如下

proxy_cache_path /cache/proxy_cache_dir levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g;


主意该指令只能在http标签内配置,levels指定该缓存空间有两层hash目录,第一层目录为1个字母,第二层为2个字母,保存的文件名会类似/cache/proxy_cache_dir/a/29/43a5b32cad24ff-c;keys-zone参数用来为这个缓存区起名,500m指内存缓存空间的大小为500MB;inactive的1d指如果缓存数据在1天内没有被访问,将被删除;max_size的30g是指硬盘缓存空间为30GB


3.proxy_cache_methods指令

语法:proxy_cache_methods[GET HEAD POST];

默认值:proxy_cache_methods GET HEAD;

使用环境: http,server,location

该指令用于设置缓存哪些HTTP方法,默认缓存HTTP GET/HEAD方法,不缓存HTTP POST方法


4.proxy_cache_min_uses指令

语法:proxy_cache_min_uses the_number;

默认值:proxy_cache_min_uses 1;

使用环境: http,server,location

该指令用于设置缓存的最小使用次数,默认值为1.


5.proxy_cache_valid指令


语法:proxy_cache_valid reply_code[reply_code ...] time;

默认值:None

使用环境:http,server,location

该指令用于对于不同返回状态码的RUL设置不同的缓存时间,例如:

proxy_cache_valid 200 302 10m;

proxy_cache-valid 404   1m;


设置200/302状态的URL缓存10分钟,404状态的URL缓存1分钟


如果不指定状态码,直接指定缓存时间,这只有200/301/302状态的URL缓存5分钟

proxy_cache_valid 200 302 10m;

proxy_cache_valid 301 1h;

proxy_cache_valid any 1m;

对没有单独设置的状态码,全部设置缓存时间为1分钟.


6.proxy_cache_key指令


语法:proxy_cache_key line;

默认值:None

使用环境:http,server,location


该指令用来设置web缓存的Key值,nginx根据Key值md5哈希存储.一般根据$host(域名)、$request_uri(请求的路径)等变量组合成proxy_cache_key 例如:


Proxy_cache_key "$host:$server_port$uri$is_args$args";




fastcgi_cache相关指令集


1.fastcgi_cache指令

语法:fastcgi_cache zone_name

默认值:off

使用环境:http,server,location

该指令用于设置那个缓存区将被使用,zone_name的值为fastcgi_cache_path指令创建的缓存区名称


2.fastcgi_cache_path指令

语法:fastcgi_cache_path path[levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];

默认值: None

使用环境:http

该指令用于设置缓存文件的存放路径.示例如下:

fastcgi_cache_path /data0/fastcgi_cache_dir levels=1:2 keys_zone=cache_one:500m inactive=1d max_si


ze=30g;


注意该指令只能在http标签内配置,levels指定该缓存空间有两层hash目录,第一层目录为1个字母,第二层为2个字母,保存的文件名会类似/data0/fastcgi_cache_dir/c/29/b7f54b2df-7773722d382f4809d65029c; keys_zone 参数用来为这个缓存区起名,500m指内存空间大小为500MB;inactive的1d指如果缓存数据在1天内没有被访问,将被删除;max_size的30g是指硬盘缓存空间为30GB.


3.fastcgi_cache_methods指令


语法:fastcgi_cache_methods [GET HEAD POST]

默认值:fastcgi_cahe_methods GET HEAD;

使用环境:http,server,location


该指令用于设置缓存哪些http方法,模式缓存HTTP GET/HEAD方法,不缓存HTTP POST方法


4.fastcgi_cache_min_uses指令


语法:fastcgi_cache_min_uses the_number;

默认值:fastcgi_cache_min_uses 1;

使用环境: http,server,location


该指令用于设置缓存的最小使用次数,默认值为1


5.fastcgi_cache_valid指令


语法:fastcgi_cache_valid reply_code [reply_code ...] time;

默认值:None

使用环境:http,server,location


该指令用于对不通返回状态码的URL设置不通的缓存时间,例如:

fastcgi_cache_valid 200 302 10m;

fastcgi_cache_valid 404 1m;

设置200 302状态的URL缓存10分钟,404状态的URL缓存1分钟.

fastcgi_cache_valid 5m;

如果不指定状态码,直接指定缓存时间,这只有200 301 302状态的URL缓存5分钟

fastcgi_cache_valid 200 302 10m;

fastcgi_cache_valid 301 1h;

fastcgi_cache_valid any 1m;

对没有单独设置的状态码,全部设置缓存时间为1分钟.


6.fastcgi_cache_key指令

语法:fastcgi_cache_key line;

默认值:None

使用环境:http,server,location


该指令用来设置web缓存的key值,nginx根据key值md5哈希存储.一般根据FastCGI服务器的地址和端口、$request_uri(请求的路径)等变量组合成fastcgi_cache_key.例如:fastcgi_cache_key 127.0.0.1:9000$request_uri;