nginx负载均衡分配策略有哪些?
答:
1、轮询(默认,不用在upstream中配置)方式
2、weight(权重)
当指定的服务器的权重参数,权重占比为负载均衡决定的一部分。权重大负载就大。
upstream myapp1 {
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}
3、ip_hash(访问ip)
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。但如果这个后端服务器故障之后,分配到别的服务的时候还是有session问题。
upstream favresin{
ip_hash;
server 10.0.0.10:8080;
server 10.0.0.11:8080;
}
4、least_conn(最少连接数)
在一些要求需要更长的时间才能完成的应用情况下, 最少连接可以更公平地控制应用程序实例的负载。使用最少连接负载均衡,nginx不会向负载繁忙的服务器上分发请求,而是将请求分发到负载低的服务器上。
upstream myapp1 {
least_conn;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
5、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。
upstream myapp1{
server 10.0.0.10:8080;
server 10.0.0.11:8080;
fair;
}
6、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
例如:http://localhost:18082/systems/index.html#http://localhost:18080/systems/myIndex,nagix会根据url中的hash(http://localhost:18080/systems/myIndex)指派到同一个服务器
upstream your.website.name{
server 10.0.0.10:8080;
server 10.0.0.11:8080;
hash $request_uri;
}
本文地址:http://www.yayihouse.com/yayishuwu/chapter/1290