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

  • 相关阅读:
    权值线段树&&可持久化线段树&&主席树
    扩展中国剩余定理(EXCRT)快速入门
    jquery学习记录
    隐藏vbs执行cmd命令的窗口
    eclipse打开出错 Error: opening registry key 'SoftwareJavaSoftJava Runtime Environment'
    正则表达式学习总结
    什么是xss攻击?
    什么是浏览器的同源策略?
    关于axios的封装
    关于递归。
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10514042.html
Copyright © 2011-2022 走看看