java 缓存配置_缓存配置丶Java教程网-IT开发者们的技术天堂

1、nginx永久缓存配置

为了得到更好的响应速度和用户体验,对于一些静态文件,nginx可以采用缓存策略,从而不用每次加载静态文件都向后台服务器发送请求。今天记录下nginx的缓存功能配置。

为了便于测试,先在后台服务器的index.html页面添加一张图片headimg.jpg,效果如下:

ec5a560997ebddc2bc89468bbfbeab1f.png

下面开始配置缓存:

1)在nginx下新建一个文件夹cache,该目录是存放缓存文件的。

mkdir cache

chmod 777 cache

2)修改nginx.conf配置

server{

listen 8080;

server_name localhost;

location / {

root cache;

proxy_store on;

proxy_store_access user:rw group:rw all:r;

#proxy_temp_path用于存储临时文件,配置文件生效时会自动生成此文件

proxy_temp_path cache_temp;

proxy_pass http://192.168.1.6;

}

}

配置生效后强刷页面,则可以看到缓存的文件:

36e31054ebb8c226245bd3ac678599dc.png

测试加载的文件来源:nginx已经缓存了文件,然后我将后台服务器的该文件删除,刷新页面,发现图片无法显示,说明文件来源于后台,而不是nginx缓存,重新修改下nginx.conf,改成下面的配置即可:

server{

listen 8080;

server_name localhost;

location / {

root cache;

proxy_store on;

proxy_store_access user:rw group:rw all:r;

proxy_temp_path cache_temp;

if (!-e $request_filename) {

proxy_pass http://192.168.1.6;

}

}

}

上述的配置方式对于http://192.168.1.5:8080/ 这样的路径会报403 Forbidden错误,因为认为缓存了一个空文件名的文件(directory index of "/usr/local/nginx/cache/" is forbidden)。要解决此办法,可以考虑单独设置一个静态文件专用的location,然后设置此规则,不过这么设置的话又不是很方便维护,有利有弊吧。

2、临时缓存服务器

在http配置快中配置:

proxy_temp_path /usr/local/nginx/proxy_temp_dir;

proxy_cache_path /usr/local/nginx/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1h max_size=500m;

配置项

说明

proxy_temp_path

存储源服务器响应内容的临时目录,配置生效后自动生成文件夹

proxy_cache_path

缓存的存储目录,配置生效后自动生成文件夹

levels

缓存目录下的层级目录结构,根据哈希后的请求url地址创建。1:2表示采用两层目录,第一层目录是1个字符,第二层目录是2个字符

keys_zone

指定缓冲区名称和大小

inactive

表示主动清空在指定时间内未被访问的缓存

max_size

表示磁盘空间大小

配置缓存相关选项

server{

listen 8080;

server_name localhost;

#添加两个响应头信息,用于获知访问的服务器地址与缓存是否成功

add_header X-Via $server_addr;

add_header X-Cache $upstream_cache_status;

location / {

proxy_cache cache_one;

proxy_cache_key $host$uri$is_args$args;

proxy_cache_valid 200 1h;

proxy_cache_valid 304 1h;

proxy_cache_valid 301 302 1h;

proxy_cache_valid any 1h;

proxy_pass http://192.168.1.6;

}

}

配置项

说明

proxy_cache

设置缓存区域名称

proxy_cache_key

用于设置hash的Key值组成规则,省略则采用默认配置。上述的$uri指域名与参数之间的部分;$is_args指有url参数时,取值?,否则取值空串;$args保存url参数,没参数时取空串

proxy_cache_valid

对不同http状态码设置缓存时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值