• 负载均衡-Nginx


    Nginx是什么?

           Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

    现在一般大型web项目采用的技术架构参照图如下:

     负载均衡定义:

           在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。

     Nginx对比LVS:

     为何Nginx负载均衡会产生session不一致问题?

    常见的负载均衡算法:

    1. 轮询(加权轮询) : 平均分配,加权轮询则权重大的轮询两次

    2. 随机算法(加权随机): 随机分发请求

    3. 最小连接数 : 多个服务器中,与处理连接数(会话数)最少的服务器进行通信的算法

    4. IP哈希算法 : 根据客户端IP,哈希取模,得到的结果便是要访问的服务器的序号

    5. URL散列 : 同一URL发往同一服务器。url链接地址哈希取模计算分配服务器序号

    解决session不一致的方法:

    1. session粘滞:-》适用IP哈希算法
    nginx配置 :

         upstream balance(变量名可变) {
              ip_hash;
             127.0.0.1:8001 weight =1 (权重配置);
             127.0.0.1:8002 weight =3 ;
           }

    优点:
          1、配置简单,不入侵应用。
          2、便于服务器水平拓展。
    缺点:
          1、服务器重启session丢失
          2、存在单点负载高的风险
          3、 单点故障问题

    2. session复制:

        原理: tomcat 配置session同步
    优点:
          1、不入侵应用(存储在session中的对象全部需要序列化),便于服务器水平扩展
          2、能适应各种负载均衡策略
          3、服务器重启或宕机不会造成session丢失
    缺点:
         1、性能低
         2、内存消耗
         3、代码考虑(session序列化)

    3. session共享:
           对象同样需要序列化。使用缓存中间件进行管理-> 例:redis缓存数据库实现 
    优点 :

        1、适用各种负载均衡策略,可拓展,适用于集群分布较大的应用

        2、session不会因为服务器重启等故障丢失。

    缺点 :

       1、需要使用中间件,代码被修改

       2、序列化和反序列化占用较大资源.

    什么是Nginx主从?

       nginx主从策略主要是为了防止出现nginx服务器挂掉,然后服务端瘫痪的问题。

     

      以上草图可以很直观的看出,作者的绘画功底很差。。。

     给大家分享一波小技巧:

        查看各大型网站是否使用Nginx以及是否配置主从策略:

        进入网站 - > 按F12 :

    预知后事如何,待下回分解。

  • 相关阅读:
    Core Foundation 框架
    iOS下微信语音播放之切换听筒和扬声器的方法解决方案
    http://blog.sina.com.cn/s/blog_6f40a0e70100p98l.html
    web移动开发最佳实践之js篇
    iOS框架介绍(五)Core Services 层
    针式PKM V9.36 最新版(2012_03_29)
    通过10000个小时的个人知识管理,将自己的智慧潜力挖掘出来
    下载 针式PKM V9.08 版
    如何避免重复造轮子问题?
    和evernote比 针式PKM有什么特色?
  • 原文地址:https://www.cnblogs.com/weekstart/p/nginx.html
Copyright © 2020-2023  润新知