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
  • 相关阅读:
    PAT 解题报告 1009. Product of Polynomials (25)
    PAT 解题报告 1007. Maximum Subsequence Sum (25)
    PAT 解题报告 1003. Emergency (25)
    PAT 解题报告 1004. Counting Leaves (30)
    【转】DataSource高级应用
    tomcat下jndi配置
    java中DriverManager跟DataSource获取getConnection有什么不同?
    理解JDBC和JNDI
    JDBC
    Dive into python 实例学python (2) —— 自省,apihelper
  • 原文地址:https://www.cnblogs.com/alexlv/p/14868242.html
Copyright © 2011-2022 走看看