zoukankan      html  css  js  c++  java
  • Nginx的调度算法

      一、ip_hash

    vim /etc/nginx/nginx.conf 
    http {
        upstream websrvs {
            server 192.168.1.4:80;
            server 192.168.1.6:80;
            server 127.0.0.1:8080 backup;
            ip_hash;
            }
    }

    在nginx的主配置文件的http语句中添加ip_hash 即可

    nginx -s reload
    #重读服务

    注释:根据源地址进行hash运算,hash值相同,调度到同一台电脑上

      二、hash key [consistent] 

    基于指定的key的hash表来实现对请求的调度,此处的key可以直接文本、变量或二者组合

      1、 hash $remote_addr;  等同于ip_hash

    vim /etc/nginx/nginx.conf 
    http {
        upstream websrvs {
            server 192.168.1.4:80;
            server 192.168.1.6:80;
            server 127.0.0.1:8080 backup;
            hash $remote_addr;
            }
    }

    在nginx的主配置文件的http语句中添加 hash $remote_addr;即可

    nginx -s reload
    #重读服务

      2、hash $request_uri consistent;  目标hash,相当于lvs中的dh

    只要访问的地址是固定的,就往同一台服务器上调度

    vim /etc/nginx/nginx.conf 
    http {
        upstream websrvs {
            server 192.168.1.4:80;
            server 192.168.1.6:80;
            server 127.0.0.1:8080 backup;
            hash $request_uri; 
            }
    }

    在nginx的主配置文件的http语句中添加hash $request_uri; 即可

    nginx -s reload
    #重读服务

       3、hash $cookie_name; #key为name的cookie 

    针对cookie调度

    http {
        upstream websrvs {
            server 192.168.1.4:80;
            server 192.168.1.6:80;
            server 127.0.0.1:8080 backup;
            hash $cookie_sessionid;
            }
    }

    网站是根据sessionid来判断身份的这里就写sessionid,网站如果是根据userid就写userid。

       测试访问:

    1 [10:48:43 root@www ~]#curl -b sessionid=123456 www.test.net
    2 192.168.1.6

    作用:将请求分类,同一类请求将发往同一个upstream server,使用consistent参数,将使用ketama一致性hash算法,适用于后端是Cache服务器(如varnish)时使用


      nginx的一致性hash算法

    hash $request_uri consistent

     keepalive 连接数N;

      为每个worker进程保留的空闲的长连接数量,可节约nginx端口,并减少连接管理的消耗


     

    ------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- 博客均为个人笔记,无所追求,仅供参考~~~ QQ--2382990774
  • 相关阅读:
    js生成当前时间
    《JavaScript权威指南》读书笔记2
    firefox与ie的兼容(css,html)
    兼容ie ff 等浏览器的jquery,js层移动方法一
    解决文字撑大容器的方法,ie,ff, div,table
    兼容ie ff 等浏览器的jquery,js层移动方法二
    【CSS经典问题】子元素浮动之后如何撑开父元素
    【CSS技巧】列表横向排列的另一种方法
    【CSS经典问题】图片下面有空隙的解决办法
    MYSQL主从复制、主主复制、双主多从配置
  • 原文地址:https://www.cnblogs.com/alexlv/p/14868242.html
Copyright © 2011-2022 走看看