#允许客户端请求的最大的单个文件字节数
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清除缓存脚本:
|