一、nginx缓存
1、什么是缓存?
1.缓存的基本概述
缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器反复去查询数据,而是由本地保存的副本响应数据。
保存在本地的这些副本具有一个过期时间,超过该时间将会更新。判断一个副本数据是否为过期数据的办法有很多,可以使用保留时间来判断,也可以使用数据完整度来判断。
许多Web服务器还具有校验功能,就是当某些副本数据过期以后,先向后端服务器发送校验请求,后端服务器对这些数据进行校验,如果发现原数据和副本没有差别,则将过期副本重新置为可用副本。
2.缓存的好处
1、减轻服务器负载
2、提供网页响应效率
3、降低网络阻塞,增强网络可扩展性
3.为什么使用缓存?
1、服务器处理能力以及负载能力出现瓶颈,响应效率大大降低
2、为了减少网络传输延迟,提升响应效率
3、能够避免因为后端服务器出现异常以及网络故障,客户端请求数据副本能够及时响应
2、nginx的缓存机制
proxy模块指令
以上nginx配置结合使用:
http {
.
.
.
proxy_cache_path /cache/nginx levels=1:2 keys_zone=imooc_cache:10m max_size=5g inactive=60m use_temp_path=off;
.
.
.
server {
.
.
.
location /api/ {
proxy_cache imooc_cache;
proxy_pass http://www.blogs-s.com:8080/api/;
proxy_cache_valid 200 304 12h;
proxy_cache_valid any 10m;
proxy_cache_key $host$uri$is_args$args;
include proxy_params;
}
}
}
tip: server配置完整版示列:(域名自行配置)
server
{
listen 80;
server_name www.blogs.com;
root /www/blog;
index index.html index.php;
location /api/ {
proxy_cache imooc_cache;
proxy_pass http://www.blogs-s.com:8080/api/;
proxy_cache_valid 200 304 12h;
proxy_cache_valid any 10m;
proxy_cache_key $host$uri$is_args$args;
include proxy_params;
}
location ~ /clear_cache(.*) {
allow all;
proxy_cache