码迷,mamicode.com
首页 > 编程语言 > 详细

Nginx的调度算法

时间:2021-06-10 18:33:41      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:use   user   ESS   端口   分类   worker   保留   rgba   ebs   

  一、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)时使用

  keepalive 连接数N;

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


 

Nginx的调度算法

标签:use   user   ESS   端口   分类   worker   保留   rgba   ebs   

原文地址:https://www.cnblogs.com/alexlv/p/14868242.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!