#允许客户端请求的最大的单个文件字节数
client_max_body_size    300m;
#缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户
client_body_buffer_size 128k;
#跟后端服务器连接的超时时间,发起握手等候响应超时时间
proxy_connect_timeout 600;
#连接成功后,等候后端服务器响应时间,其实已经进入后端的排除之中等候处理
proxy_read_timeout 600;
#后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有的数据
proxy_send_timeout 600;
#代理请求缓存区,这个缓存区间会保存用户的头信息以供nginx进行规则处理,一般只要能保存下头信息即可
proxy_buffer_size 16k;
proxy_busy_buffer_size 64k;
proxy_temp_path    /data1/proxy_temp_path    #proxy_temp_path和proxy_cache_path必须指定在同一个分区
#缓存路径、缓存目录的层级、缓存在内存中的大小,缓存时间,最大缓存大小(硬盘中)
proxy_cache_path /data1/proxy_cache_path levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=1g;
location /sms {
   proxy_pass http://192.168.2.1;            #请求后端服务器
   proxy_cache cache_one;                     #使用proxy_cache_path定义的缓存
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;    
    proxy_set_header X-Forwarded-For $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;     #将客户端请求的IP返回给后端服务器                  
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|mp4|3gp|flv|js|css|html)$ {
   proxy_cache cache_one;
   proxy_cache_valid 200 10m;  
   proxy_cache_valid 304 1m;
   proxy_cache_valid 301 302 1h;
   proxy_cache_valid any 1m;        #定义cache_one缓存的内容,根据不同的状态码设置不同的缓存时间
   proxy_cache_key $host$uri$is_args$args;    #以域名、URI、参数组合成web缓存的key值,nginx根据key值hash,存储缓存内容到二级缓存目录中
   proxy_pass http://192.168.3.1;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for ;
}    
浏览器本地缓存:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
   expires 30d;
}
location ~ .*\.(js|css)?$ {
   expires 1h;
}
nginx添加清除缓存模块:
cd nginx-1.3.7/
#下载ngx_cache_purge模块
wget http://labs.frickle.com/files/ ngx_cache_purge-2.1.tar.gz
tar xf ngx_cach_purge-2.1.tar.gz
#重新编译nginx配置参数,加上该模块
./configure --add-module=./ngx_cache_purge-2.1

在主配置文件中加上:
location ~ /purge(/.*) {
   #设置只允许指定的IP或IP段才可以清除URL缓存。
   allow            127.0.0.1;
   allow            192.168.0.0/16;
   deny            all;
   proxy_cache_purge    cache_one   $host$1$is_args$args;
}    
nginx清除缓存脚本:
   #!/bin/sh
   nginxcache_path="/home/nginx/proxy_cache_dir"
   grep -a -r $1 $nginxcache_path | strings |grep "KEY: " | awk -F'KEY: ' '{print "http://"$2;}' | grep [a-zA-Z0-9]$ > cache_list.txt
   #清除cat cache_list.txt文本中url所对应的nginx
   sed -i "s#1img.looklook.cn/#1img.looklook.cn/purge/#" cache_list.txt
   for url in `cat cache_list.txt`; do
   curl $url
   done