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

    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