负载均衡调度算法
Nginx提供的负载均衡策略有两种:
内置策略:nginx自带的算法
- 雨露均沾型:轮训、加权轮训、哈希
- 定向服务型:ip_hash、least_conn、cookie、route、lean、
- 商业类型:ntlm、least_time、queue、stick
扩展策略:各种结合业务场景自定义的算法或者第三方算法
- 自定义算法
- 第三方算法:fair、url_hash
常用算法简介:
- 轮询(默认):请求按顺序逐一分配到不同的后端服务器。
- weight:指定轮询权重,值越大,分配到的几率就越高,适用于后端服务器性能不均衡情况。
- ip_hash:按访问IP的哈希结果分配请求,分配后访客访问固定后端服务器,有效的解决动态网页会话共享问题。
- fair:基于后端服务器的响应时间来分配请求,响应时间短的优先分配。
- url_hash:按访问URL的哈希结果分配请求,使同URL定向到同一台后端服务器,可提高后端缓存服务器的效率。
加权轮训实践
修改负载均衡配置文件
#负载均衡 upstream backends { server 192.168.229.128:10086 backup; #后备主机,当所有非backup机器出现故障或者繁忙的时候,才会请求backup机器 server 192.168.229.128:10087 weight=1; #指定轮询权重,值越大,分配到的几率就越高,适用于后端服务器性能不均衡情况 server 192.168.229.128:10088 weight=2; } server { #监听的端口号 listen 9001; #服务器 server_name 192.168.229.128; location / { #指向代理 proxy_pass http://backends/; } }
检查nginx配置后重载服务
sudo nginx -t systemctl reload nginx
查看效果