概述
一般情况下会部署多个nginx,在里面都会放一些缓存,但是命中率比较低。因此,会采用分发层与应用层的双层nginx架构方案。
缓存命中率低下原因
缓存命中率低的原因
上图已经很清楚的描述了nginx 缓存命中率低下的原因,为了解决这个问题,采用相同的id 路由到相同的nginx 服务器中就可以了。
双层nginx 架构方案
双层nginx 架构
上图描述了双层nginx 架构:分发层与应用层。
最前端的nginx服务器,被称之为分发服务器;后端的nginx服务器,就称之为应用服务器。
- 分发层 nginx服务器
负责流量分发的逻辑和策略,这个里面它可以根据你自己定义的一些规则, 比如根据Id去进行 hash,然后对后端的 nginx 数量取模,将某一个请求的访问, 固定路由到一个 nginx 后端服务器上去。 - 应用层 nginx 服务器
负责数据缓存。通过上面的路由保证只会从 redis 中获取一次缓存数据, 这样后面全都是走 nginx 本地缓存了。
结论
在实际的生产环境中,可以大幅度提升nginx本地缓存命中率,减少redis后端的压力,大量提升服务性能。