Nginx负载均衡实现方法

1.轮询法(默认)

将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载

upstream tomcat_server{ 
    server 192.168.10.11:8080 weight=1;
    server 192.168.10.12:8080 weight=1; 
}

2.加权轮询法(weight)

不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同 给配置高、负载低的机器配置更高的权重,让其处理更多的请求
配置低、负载高的机器,给其分配较低的权重,降低其系统负载 加权轮询能很好地将请求顺序且按照权重分配到后端
weight的值越大分配到的访问概率越高

upstream tomcat_server{ 
    server 192.168.10.11:8080 weight=1;
    server 192.168.10.12:8080 weight=2; 
}

3.源地址哈希法

根据获取客户端的IP地址,通过哈希函数计算得到一个数值 用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号
采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问
可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题

upstream tomcat_server{ 
    ip_hash; 
    server 192.168.10.11:8080 weight=1; 
    server 192.168.10.12:8080 weight=1; 
}

4.最小连接数法(least_conn)

由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接
数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器

upstream tomcat_server{ 
    least_conn; 
    server 192.168.10.11:8080 weight=1; 
    server 192.168.10.12:8080 weight=1; 
}

5.Fair

比weight、ip_hash更智能的负载均衡算法
可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配
Nginx本身不支持fair,如果需要这种调度算法,则必须安装upsteram_fair模块

upstream tomcat_server{ 
    fair; 
    server 192.168.10.11:8080 weight=1; 
    server 192.168.10.12:8080 weight=1; 
}

Fair插件安装

下载地址:https://github.com/gnosek/nginx-upstream-fair/tree/master
解压zip:unzip nginx-upstream-fair-master.zip
增加模块: ./configure  --prefix=/opt/nginx--add-module=/opt/nginx-upstream-fair-master
defalut_port问题修改:cd nginx-upstream-fair-master
sed -i's/default_port/no_port/g' ngx_http_upstream_fair_module.c
make
make install

6.url_hash

按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器 可以进一步提高后端缓存服务器的效率
Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包

upstream tomcat_server{ 
    hash $request_uri; 
    server 192.168.10.11:8080 weight=1; 
    server 192.168.10.12:8080 weight=1; 
}
hash插件安装
下载地址:https://github.com/evanmiller/nginx_upstream_hash
解压zip:unzip nginx_upstream_hash-master.zip
增加模块: ./configure  --prefix=/opt/nginx--add-module=/opt/ nginx_upstream_hash-master 
make
make install
原创文章 15 获赞 22 访问量 1293

猜你喜欢

转载自blog.csdn.net/jdkss/article/details/105020477