Nginx
Nginx常见负载均衡方式
轮询(默认):按照每个请求时间的顺序的分配到后端服务器
ip_hash:每个请求按访问ip的hash结果分配
weight:按照权重轮询,权重值越高,轮询几率越大
fair(三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配
url_hash(三方):根据url的hash结果进行分配
健康检查
Nginx的健康检查主要体现在对后端服务提供健康检查,且功能被集成在upstream模块中,共有两个指令
max_fails:定义定义可以发生错误的最大次数
fail_timeout:nginx在fail_timeout设定的时间内与后端服务器通信失败的次数超过max_fails设定的次数,则认为这个服务器不在起作用;在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。
Nginx在检测到后端服务器故障后,nginx依然会把请求转向该服务器,当nginx发现timeout或者 refused后,会把改请求会分发到 upstream的其它节点,直到获得正常数据后,nginx才会把数据返回给用户,这也便体现了nginx的异步传输,而lvs/haproxy /apache责无法做到这些(在lvs/haproxy/apache里,每个请求都只有一次机会,假如用户发起一个请求,结果该请求分到的后端服务器 刚好挂掉了,那么这个请求就失败了)
Last updated