Nginx 缓存
Nginx本身就有缓存功能,能够缓存静态对象,比如图片、CSS、JS等内容直接缓存到本地,下次访问相同对象时,直接从缓存即可,无需访问后端静态服务器以及存储存储服务器,可以替代squid功能。
1 环境准备
我们这里只测试nginx的proxy_cache的缓存功能,所以结构越简单越好,这里我们只需要准备一台nginx的虚拟机即可,如果没有nginx,那么我们可以使用epel源,yum安装一个即可:
这里为了简单,只使用简单的nginx.conf配置文件:
启动查看初始界面是否正常:
一切正常,首页有2张图片,正好用于实验:
至此环境准备完毕。
2 配置cache
2.1 创建目录并挂载tmpfs
nginx的proxy_cache是基于内存和磁盘的缓存,需要指定缓存目录和临时目录:
缓存存放于磁盘,磁盘IO会影响缓存的速度,所以我们在将tmpfs挂载于ngx_cache目录上来加速缓存的读取和写入:
2.2 配置缓存目录大小以及key空间名
将下面配置放至http标签中:
2.3 配置反向代理
首先配置upstream节点池:
在server标签的location段中配置代理:
配置8080端口的标签:
配置proxy_cache相关参数启用缓存:
最终的nginx.conf配置文件如下:
2.4 配置日志
为了观察缓存的命中状态,我们可以将缓存相关的变量记录在日志中。
定义日志格式:
在反向代理标签中引用日志:
nginx重新加载配置:
2.5 监测缓存
监测缓存文件的事件
浏览网站:
说明:有最后几行可知,图片缓存到目录中。
通过url清理缓存
随后使用curl
命令进行清理缓存操作:
参考链接