美文网首页
双层Nginx架构说明

双层Nginx架构说明

作者: lfboo | 来源:发表于2022-04-21 18:46 被阅读0次

    我们知道nginx在负载均衡和反向代理方面有着很好的用途,最近发现公司的架构是Nginx+Nginx+tomcat架构, 仔细做了下分析,特做下记录:
    平时我们对如下的架构可能比较熟悉


    image.png

    Nginx做负载均衡,把流量按照一定的均衡规则,路由转发到应用服务器,即tomcat上

    但nginx也是一款很出色的反向代理工具,因此我们可以缓存一些数据,从而减少应用服务器的压力,但这样就会出现一个问题
    如果nginx缓存数据过多,或有热点数据,即使nginx性能很高,也终究会成为瓶颈; 很容易想到的一种办法是加机器,一种很常见的做法,是在每台应用机器上都部署nginx,这样的话就可以和应用服务器一样进行扩容, 这样就不用担心nginx缓存数据瓶颈了

    但这样的话同时也引出另一个问题,就是缓存命中率可能下降,比如负载均衡层通过轮询的方式把流量转发到应用层的nginx上,这样相同的请求,每次是随机分配到各应用层nginx上的,导致nginx缓存命中率低

    考虑到上述原因,可以把负载均衡层路由规则好好设计一把,保证相同的请求每次都路由到同一台应用层nginx上,这样就可以提高缓存命中率了, 此时Nginx又能很好的派上用场了,基于Nginx+Lua可以很灵活的制定流量路由规则。

    因此,才有了Nginx+Nginx+Tomcat


    image.png
    • 分发层Nginx:
      负责流量分发的逻辑和策略,这个里面它可以根据你自己定义的一些规则, Nginx Plus功能更强大

    • 应用层Nginx:
      负责数据缓存,可以是本地缓存 share dict,也可以直接访问redis

    相关文章

      网友评论

          本文标题:双层Nginx架构说明

          本文链接:https://www.haomeiwen.com/subject/yubnertx.html