作者:diege

时间:2012-04-21

要注意临时文件和缓存是有区别的。Temp临时文件。Cache缓存

一、Nginx

1、  客户端缓存

client_max_body_size 20m;

client_header_buffer_size 32k;

large_client_header_buffers 4 64k;

client_body_temp_path   /data/tmp/nginx_client_body_temp;

允许客户端请求的最大单个文件字节数

#用于指定来至客户端请求头的最大的单个文件字节数.

#较大消息头的缓存的最大数量和大小

#客户端请求主体的缓存目录

2、  反向代理缓存

proxy_buffer_size       4k;

#设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设为更小

proxy_buffers           4 32k;

#设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8

proxy_busy_buffers_size 64k;

#设置系统很忙时可以使用的proxy_buffers的大小,官方推荐位proxy_buffers*2

proxy_temp_file_write_size 128k;

#设置在写入proxy_temp_path时缓存临时文件的大小,预防一个工作进程在传递文件时阻塞太长

proxy_store on;

#这个指令设置哪些传来的文件将被存储,参数”on”保持文件与aliasroot指令指定的目录一致,参数”off”将关闭存储,路径名中可以使用。

#注意proxy_store不是一个缓存,它更像是一个镜像。

proxy_store_access user:rw group:rw all:r;

#指定创建文件和目录的相关权限

proxy_temp_path   /data/temp/proxy_temp_dir;

#proxy_temp_pathproxy_cache_path指定的路径必须在同一分区

proxy_cache_path  /data/temp/proxy_cache_dir  levels=1:2   keys_zone=cache_one:200m inactive=1d max_size=30g;

#设置内存缓存空间大小为200MB1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB

proxy_cache cache_one;

设置Web缓存区名称为cache_one

proxy_cache_methods GET HEAD POST;

#要缓存的http方法

proxy_cache_key $host$uri$is_args$args

#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录

proxy_cache_min_uses 1;

多少次请求后应答将被缓存,默认1

proxy_cache_valid 200 302 12h;

proxy_cache_valid 404 1m;

proxy_cache_valid any 1m;

#对不同的HTTP状态码设置不同的缓存时间

二、php缓存

http://www.howtocn.org/nginx:nginx%E6%A8%A1%E5%9D%97%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E4%B8%AD%E6%96%87%E7%89%88:standardhttpmodules:fastcgi

开始缓存非常有用,可以降低CPU负载,并且防止502错误的发生。但开启缓存也会引起很多问题,要视具体情况而定

fastcgi_buffer_size 128k;

#这个参数指定将用多大的缓冲区来读取从FastCGI进程到来应答头。

#默认的缓冲区大小为fastcgi_buffers指令中的每块大小,可以将这个值设置更小。

fastcgi_buffers 4 256k;

#设置缓存区的个数和大小 具体要根据站点php页面文件大小的中间值来决定.这里4*256k 小于1

fastcgi_busy_buffers_size 256k;

#默认设置是fastcgi_buffers的两倍

fastcgi_temp_file_write_size 256k;

#表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍

#fastcgi_temp_path /dev/shm;

#将缓存放入内存中。LINUX

fastcgi_temp_path       /data/tmp/nginx_fastcgi_temp;

fastcgi_temp_path       /data/tmp/nginx_fastcgi_temp 1 2;

指定存储从别的服务器传送来的数据临时文件路径,同样可以指定三级目录已经哈希存储,level的值指定为哈希设置多少标记,例如,在下列配置中

fastcgi_cache_path  /data/tmp/fastcgi_cache levels=1:2 keys_zone=fastcgi_cache:10m inative=5m;

#这个指令指定FastCGI缓存的路径以及其他的一些参数,所有的数据以文件的形式存储,缓存的关键字(key)和文件名为代理的url计算出的MD5值。

Level参数设置缓存目录的目录分级以及子目录的数量

fastcgi_cache fastcgi_cache;  #开始fastcgi缓存并指定一个名称

fastcgi_cache_valid 200 302 1h; #200 302 缓存一个小时

fastcgi_cache_valid 301 1d; #301缓存1

fastcgi_cache_valid any 1m; #其他应答缓存1分钟