Nginx的负载均衡策略可分为两类:内置策略与扩展策略。
内置策略有3种,轮询、加权轮询、IP hash:
1.轮询,顾名思义,就是服务器将每个前端请求按顺序(时间顺序或者排列次序)逐一分配到不同的后端节点上,对于出现问题的后端节点自动去除;
2.加权轮询,在基本的轮询策略基础上考虑各后端节点接受请求的权重,指定各后端节点被轮询到的几率,主要用于后端节点性能不均的情况下;
3.IP hash,是将前端的访问IP进行hash操作,然后根据hash结果将请求分配给不同的后端节点。这样会使得每个前端访问IP会固定访问一个后端节点,好处是前端用户的session只在一个后端节点上,不必考虑一个session存在多台节点上而出现的session共享问题。
扩展策略有2种,url hash、fair:
4.url hash,将前端请求的url地址进行hash操作,根据hash结果将请求分配到不同的后端节点上;
5.fair,将前端请求转发到负载最小的后端节点上。Nginx通过后端节点对请求的响应时间来判断负载情况,响应时间最短的节点负载就相对较轻,Nginx就会将前端请求转发到此后端节点上。