Nginx站点缓存设置

 2015年03月24日    586     声明


网站上线后,有些变化很少的静态资源,如:css、图片、font、js等,可以设置客户端缓存时间,以减少http请求,提高网站运行效率。我们可以利用nginx缓存服务器的静态资源,达到优化站点目的。

可以使用Nginx的proxy_cache将用户的请求缓存到一个本地目录下,当下次请求时可以直接读取缓存文件,达到减少服务器请求次数的目的。


配置如下

打开nignx.conf配置文件,在http节点加入如下配置:

proxy_connect_timeout 10;
proxy_read_timeout 180;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_temp_path /tmp/site_cache;
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=1g;

相关说明:

设置临时目录:proxy_temp_path /tmp/site_cache;
设置缓存目录:proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=1g;
levels设置目录层次,keys_zone设置缓存名字和共享内存大小,inactive在指定时间内没人访问则被删除在这里是1天,max_size最大缓存空间。


在server节点设置要缓存文件的后缀,配置如下:

location ~ .*\.(gif|jpg|png|css|js|eot|svg|ttf|woff|otf)(.*) {
     proxy_pass http://127.0.0.1:3000;
     proxy_redirect off;
     proxy_set_header Host $host;
     proxy_cache cache_one;
     proxy_cache_valid 200 302 24h;
     proxy_cache_valid 301 30d;
     proxy_cache_valid any 5m;
     expires 30d;
}

相关说明:

非缓存页面跳转对应站点:proxy_pass http://127.0.0.1:3000;
设置缓存共享内存:proxy_cache cache_one;
设置http状态码为200,302缓存时间,24h为24小时:proxy_cache_valid 200 302 24h;
设置失期时间为30天:expires 30d