首页 > 服务配置 > nginx的proxy_cache缓存使用
2016
09-20

nginx的proxy_cache缓存使用

nginx或tengine除了用于做http服务器外,一般还用于做反向代理,邮件代理服务器,今天说一下用proxy_cache模块缓存数据的配置。

一,安装nginx,添加ngx_cache_purge模块

下载ngx_cache_purge-2.3.tar.gz,解压,在tengine编译的时候添加解压ngx_cache_purge模块的路径

安装好的tengine如下(nginx支持平滑升级)

二,配置nginx

nginx主配置文件nginx.conf添加如下,是设置响应被缓存的最小请求次数,缓存数据是保存在文件中的,缓存的键和文件名都是在代理URL上执行MD5的结果。levels参数定义了缓存的层次结构。建议将缓存和proxy_temp_path指令设置的临时文件目录放在同一文件系统。

共享内存通过keys_zone参数的name和size来定义。被缓存的数据如果在inactive参数指定的时间内未被访问,就会被从缓存中移除,不论它是否是刚产生的。inactive的默认值是10分钟。

特殊进程“cache manager”监控缓存的条目数量,如果超过max_size参数设置的最大值,使用LRU算法移除缓存数据。

proxy_cache_path中定义缓存路径,缓存区名称,缓存空间大小,保存时长,最大占用空间等

tengine文档点我       bbotte.com

下面是test.conf的配置,10.211.55.4是本机的IP,10.211.55.5是运行http服务的主机。

先定义2个location,nowebcache只用于代理,不缓存;webcache用proxy_cache缓存

上面的配置是因为达到某一个需求:
1,不是针对所有的接口都做缓存
2,uri包含有av=5即做缓存,有一个前提:如果还有其他参数,此网页也可以正常访问(因为ngx.req.set_uri_args下面木有对请求页做判断,严谨一些是需要判断的)
我们在浏览器打开的链接为http://10.211.55.4/job/?av=5&xyz=123

nginx的proxy_cache缓存使用 - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

我们查看缓存的内容

如果对uri不用判断,proxy_cache_key参数可以为 $request_uri$args

三,清理缓存,如果需要清理已缓存的数据,需要在test.conf里面添加如下

清理缓存访问http://10.211.55.4/purge/job/?av=5即可

nginx的proxy_cache缓存使用 - 第2张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

我们一般是把缓存放在内存中/dev/shm/,这样请求会更快

参考:

第二章 Nginx+Lua开发入门

ngx_http_proxy_module proxy_cache_key 模块

安装淘宝开源web服务器tengine替换nginx并使用proxy_cache做前端代理

tengine ngx_http_lua_module 

最后编辑:
作者:bbotte
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。