一、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;
       <strong> ip_hash;</strong>
        }
}

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

nginx -s reload<br></br>#重读服务

注释:根据源地址进行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;
       <strong> hash $remote_addr;</strong>
        }
}

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

nginx -s reload<br></br>#重读服务

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;
       <strong> hash $request_uri; </strong>
        }
}

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

nginx -s reload<br></br>#重读服务

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, server, Nginx, http, 192.168, 算法, hash, 调度

相关文章推荐

添加新评论,含*的栏目为必填