zoukankan      html  css  js  c++  java
  • Nginx详解十五:Nginx场景实践篇之负载均衡

    负载均衡

    GSLB(全局的负载均衡,往往是以国家为单位,或者以省为单位)

    SLB

     Nginx就是一个典型的SLB模型,

    分为四层负载均衡和七层负载均衡

    七层负载均衡可以处理应用层,如thhp信息,Nginx就是典型的七层负载均衡SLB

    Nginx实现负载均衡的原理

    配置语法

    配置语法:upstream name {...};
    默认状态:-;
    配置方法:http

    在/opt/app/下创建code1、code2、code3目录,并放入3个html

     

     在/etc/nginx/conf.d/下准备好三个conf

    检查配置语法并重载

    nginx -tc /etc/nginx/nginx.conf
    nginx -s reload -c /etc/nginx/nginx.conf

     

    在另一台服务器上配置一个conf

    每次请求都会不一样,且轮流分配(轮询),此时如果有一台机器挂了,如server2挂了,那么则会在server1和server3之间不断轮询,不再访问server2

    upstream举例

    upstream backend{
      server backend1.example.com weight=5;
      server backend1.example.com:8080;
      server unix:/tmp/backen3;

      server backup1.example.com:8080 backup;
      server backup2.example.com:8080 backup;
    }

    后端服务器在负载均衡调度中的状态

    不管如何刷新都只有server3提供服务,即8001和8002不服务

    把访问8003的请求drop掉:iptables -I INPUT -p tcp --dport 8003 -j DROP

    服务端会把请求转到server2上,后面不管怎么刷新,都会访问server2

    清理掉iptable规则再访问:iptables -F

    又变回server3,且一直是server3

    轮询策略与加权轮询

    调度算法

    加权轮询:以下配置为,当有7个请求过来的时候,会有5和请求分配给8002

     

    ip_hash:同一个IP永远只访问一个后端,解决身份验证失效的问题

    不管怎么刷新,都只定位到一台服务器上

    url_hash(1.7.2之后的版本支持):

    配置语法:hash key [consistent];
    默认状态:-;
    配置方法:upstream

    此时不会执行轮询,访问哪一个url,hash绑定到一个后端服务后,就永远只访问那一台机器

  • 相关阅读:
    JavaScript Web页面内容导出到Word、Excel (转载)
    合并多个声音文件
    龙舟记
    c#获取应用程序目录
    ADO.NET数据库连接池研究(一) 查看连接池数 (转)
    UpdatePanel 内控件 更新“外的”控件【转】
    web客户端播放wav文件
    解决DataList控件无缝滚动图片(转)
    关闭sleeping连接进程在Sql Server2000数据库存储过程中(转)
    win7下没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10514042.html
Copyright © 2011-2022 走看看