Nginx的upstream目前支持的五种方式的分配,分别是:轮询策略,权重轮询策略,ip_hash策略,fair策略,url_hash策略。
目前我总结的nginx负载策略共两大类,分别是:内置策略和扩展策略。
1) 内置策略有3种,包括:轮询策略、加权轮询策略和ip_hash策略。默认情况下内置策略会编译进Nginx的内核,只需要在nginx配置中指明参数即可。
轮询策略
顾名思义,该策略就是服务器将每个前端请求按顺序(时间顺序和排列次序)逐一分配到不同的后端服务器节点。如果后端服务器出现问题,即down掉,那么就会被自动剔除。
例如:当前端有多个请求到后端服务器节点,服务会被轮流分配到下面三个服务器。
upstream s_siat{
server 172.31.3.82:9170;
server 172.31.3.82:9171;
server 172.31.3.82:9173;
}
加权轮询策略
该策略在基本的轮询策略基础上考虑各后端服务器节点接受请求的权重,指定各后端服务器节点被轮询到的机率,主要应用于后端服务器节点性能不均的情况。
例如:通过直接配置weight来设置访问机率,weight的大小和访问比率成正比。下面三个服务器(如果不配置weight,则默认配置为weight=1),第一个的权重是1,第二个的权重是3,第三个的权重是2,那么这三个后端服务器被访问的比率是1:3:2,即server