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绑定到一个后端服务后,就永远只访问那一台机器

  • 相关阅读:
    GNU make manual 翻译( 一百五十)
    [导入]Google开发者日见闻 王开源现身
    [导入]微软中国原高管宫力就任火狐中国总经理
    [导入]QQTalk Beta1 简体中文版
    [导入]《南方都市报》:国产龙芯产业化 难
    [导入][多图]Nokia正式发布奢华8600/6500双子手机
    [导入]用户界面设计的技巧与技术
    [导入]BitComet(比特彗星) 0.89
    [导入]µTorrent 1.7 beta 2248
    今天我注册了
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10514042.html
Copyright © 2011-2022 走看看