[nginx] 负载均衡策略
nginx选择反向代理服务器以达到负载均衡的策略(UpStream配置)
具体策略:
1. 轮询
依次将请求发送给列表中的服务器,针对服务器性能相同的情况。
2. 权重轮询
按权重发送请求给服务器,权重高的得到的请求更多,针对性能不平等的情况。
3. ip_hash
计算请求ip的hash(并取模到有限空间),每个服务器服务一段固定的地址空间,好处是同一个访客回固定访问一个服务器,可以解决session共享问题。
相关Nginx配置
down 该server暂不参与负载
weight server的权重
max_fails 允许请求的最大次数
fail_timeout 请求失败达到最大次数后暂停的时间
backup 其他所有机器繁忙时用于紧急应对的备用机器
注:Nginx重新加载配置不会停止服务,原理为Nginx会启动采用新的配置文件的worker进程,并将新的请求分配到这些进程。在原有worker进程的请求全部处理完毕后会关闭旧worker进程。
补充
负载均衡方案需要配合keepalive使用,因为Nginx进行反向代理的时候,可能会出现,返回结果延迟的情况,可能会出现结果尚未返回到代理服务器,它和客户端的连接已经过期;或者设置连接过期时间过长导致浪费资源的情况。
(keepalive是在传输层等位置主动发送探测报文确保连接存活的方案)