nginx的缓存
缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器反复去查询数据,而是由本地保存的副本响应数据。
保存在本地的这些副本具有一个过期时间,超过该时间将会更新。判断一个副本数据是否为过期数据的办法有很多,可以使用保留时间来判断,也可以使用数据完整度来判断。
缓存的好处
1.
减轻服务器负载
2.
提供网页响应效率
3.
降低网络阻塞,增强网络可扩展性
为什么使用缓存?
1.
服务器处理能力以及负载能力出现瓶颈,响应效率大大降低
2.
为了减少网络传输延迟,提升响应效率
3.
能够避免因为后端服务器出现异常以及网络故障,客户端请求数据副本能够及时响应
proxy_cache imooc_cache; #用于配置一块公用的内存区域的名称
proxy_pass http://www.blogs-s.com:8080/api/; #代理的服务器
proxy_cache_valid 200 304 12h; #针对不同的HTTP响应状态设置不同的缓存时间
proxy_cache_valid any 10m;
proxy_cache_key $host$uri$is_args$args; #用于设置Nginx服务器在内存中为缓存数据建立索引时使用的关键字
include proxy_params; #引入缓存文件
proxy_set_header Host $http_host; # 设置请求头信息
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30; #代理服务器超时时间
proxy_send_timeout 60; #发送请求给代理服务器的超时时间
proxy_read_timeout 60; #读取代理服务器超时时间
proxy_buffering on; #开启缓冲区
proxy_buffer_size 32k; #缓冲区大小
proxy_buffers 4 128k; #指定一个请求的缓冲大小以及数量
开启代理缓存:
location ^~ /abc {
proxy_cache cache_one;
proxy_pass http://larave.xym/;
proxy_cache_valid 200 304 12h;
proxy_cache_valid any 10m;
proxy_cache_key $host$uri$is_args$args;
}
客户端缓存一般指的是
浏览器缓存、
app
缓存
等等,目的就是
加速各种静态资源的访问
,降低服务器压力。
![](https://i-blog.csdnimg.cn/blog_migrate/21713a48a5f37272a61796348348f79d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5ffd015a268900738b1449d652f70ed8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/37a9356ad3146432401fc98945b28c9d.png)
Nginx的gzip
Gzip
是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在
Linux
平台。当应用Gzip
压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。
![](https://i-blog.csdnimg.cn/blog_migrate/667ee0a1b02ccc1a7bb0a270cb71dba7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/967c80ec84f1e14c1e7f28c21ef5e864.png)
Gzip on;
Gzip_min_length 1024;
Gzip_buffers 4 16k;
Gzip_comp_level 2;
Gzip_types text/plain application/x-javascript text/css application/xml;
Gzip_vary on;
Gunzip_static on;