柚子快报激活码778899分享:【nginx作为缓存服务器】

http://yzkb.51969.com/

目录

一、Nginx缓存介绍二、Nginx配置缓存1.缓存开关:proxy_cache2.代理缓存:proxy_cache_path4.缓存过期

一、Nginx缓存介绍

Nginx可以对浏览器缓存进行配置,让一些静态资源缓存到用户本地存储,以提高页面的响应速度,也能降低服务端的压力,加速了页面的访问。它作为一个高性能的web服务器,同时也可以是一个缓存服务器。 提供了ngx_http_proxy_module模块 官方文档:https://nginx.org/en/docs/http/ngx_http_proxy_module.html

二、Nginx配置缓存

1.缓存开关:proxy_cache

语法:proxy_cache zone | off; zone:用于定义共享内存区域的名称

2.代理缓存:proxy_cache_path

作用域:http 语法:proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size]

path:设置缓存的路径levels:用于设置缓存的目录结构,例如levels=1:2,意味着生成两层目录。该参数与proxy_cache_key 指令有关proxy_cache_key 的默认值为$ scheme$ proxy_host$request_uri,然后将获取到的值MD5加密,然后依次从末尾按照levels的设置取值来创建目录keys_zone:其中name为proxy_cache定义的值。size表示共享内存区域的大小。1M的内存可以存储大约8000个keyinactive:指定缓存失效的时间,如果在该段时间内,缓存文件没被访问,缓存将被删除max_size:指定最大的缓存大小,当超出大小,会根据LRU算法,删除最近最少使用的数据,避免缓存占用磁盘大小太多。 example:proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;

3.缓存维度:proxy_cache_key string proxy_cache_key string;定义缓存唯一key,通过唯一key来进行hash存取,缓存文件名。 Default:

proxy_cache_key $scheme$proxy_host$request_uri;

4.缓存过期

proxy_cache_valid 200,302 10m; proxy_cache_valid 404 1m;

实验配置: http模块中的配置:

proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=proxy_cache:10m max_size=10g inactive=60m use_temp_path=off;

location中的配置

proxy_cache proxy_cache; #Proxy_cache使用名为的对应缓存配置

proxy_cache_valid 200 304 12h; #proxy_cache_ valid 200206304301302 12h;对httpcode为200..的缓存12小时

proxy_cache_valid any 10m; #proxy_cache_valid 设置不同相应码的缓存时间,除了上面的,其他的的存10分钟

proxy_cache_key $host$uri$is_args$args;

#proxy_cache_key$uri定义缓存唯一key,通过唯一key来进行hash存取

proxy_cache_min_uses 1; #命中多少次才进行缓存

add_header Nginx-Cache $upstream_cache_status; #add_header:缓存命中情况如何在http头中体现,以及在nginx日志中查看

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; #proxy_next_upstream出现502-504或错误.会跳过此台服务器访问下一台服务器

注意:放缓存目录数据的要先创建

在这里我遇到了一个小问题就是,我加了能查看缓存命中率的命令的,但是却查不到状态,经过百度才发现$upstream_cache_status 变量通常是与代理模块一起使用的,用于表示上游缓存的状态。如果你的请求并不是通过代理模块处理的,那么这个变量可能就不会被设置。确保你的请求是经过代理模块处理的,以便正确获取到缓存状态信息。其实原因就是我做了nginx的动静分离,所以看不到状态。

柚子快报激活码778899分享:【nginx作为缓存服务器】

http://yzkb.51969.com/

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: