Nginx 图片 js文件缓存配置方法

对于网站中像图片js,css都可能长年不更新了这样我们可以把它缓存起来从而减少相关请求了,下面我们一起来看利用proxy_cache将用户的请求缓存到本地一个目录中,这样就达到我们的目地了。

我们下面来把gif|jpg|jpeg|png|bmp|swf给缓存起来,配置如下

打开nginx.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/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;

再在在server层级加入以下代码 location加入如下代码

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires       15d;
}

location ~ .*\.(js|css)?$
{
expires       1d;
}

上面如果这样设置可能很多朋友看不明白下面我整理一下比较详细的例子

 
如果我们要把像css,js都加进入缓存 只要修改location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$成 location ~ .*\.(gif|jpg|png|css|js)(.*) 就可以了哦。


#要缓存文件的后缀,可以在以下设置。

location ~ .*\.(gif|jpg|png|css|js)(.*) {
     proxy_pass http://appserver ;
     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 90d;
}

说明:

1、http设置。

设置临时目录
proxy_temp_path /tmp/temp_dir;
设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,临时目录要跟缓存目录在同一个分区。
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
 
2、server设置 
设置缓存共享内存
proxy_cache cache_one;
设置http状态码为200,302缓存时间,24h为24小时
proxy_cache_valid 200 302 24h;
设置失期时间,90d为90天
expires 90d;
不进行缓存直接转到后端服务器
proxy_pass http://127.0.0.1:9000;


当然我们还可以利用expires指令来配置缓存了

控制图片等过期时间为30天,当然这个时间可以设置的更长。具体视情况而定
比如

location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {
expires 30d;
}

控制匹配/resource/或者/mediatorModule/里所有的文件缓存设置到最长时间

比如

location ~ /(resource|mediatorModule)/ {
root    /opt/demo;
expires max;
}

转载于:https://my.oschina.net/mickelfeng/blog/607194

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值