负载均衡方法
- round-robin
- least-connected
- ip-hash
缺省的负载均衡配置
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
缺省的负载均衡算法是round-robin
最小连接负载均衡算法
upstream myapp1 {
#就是加个least_conn
least_conn;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
会话持久化
upstream myapp1 {
ip_hash;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
通过客户端的ip地址来作为一个hash key,来决定哪个server来回应客户端的请求。
加权的负载均衡
upstream myapp1 {
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}
就是5次请求,3次给server1,1次给server2和server3.
健康检查
使用的是被动健康检查,如果来自一个server的响应报错,那nginx会认为这个server是不健康的,避免给这个server分发请求。
指令 max_fails设置了在时间fail_timeout期间,连续的不成功的和server的通信次数,max_fails默认设置为1,如果为0,表示不进行健康检查。fail_timeout设置了过多长时间,server将会被确定为失败,也就是说,在fail_timeout时间后,nginx会再去使用客户端的情求来探测server是否健康。
本文详细介绍了负载均衡的三种常见方法:轮询(round-robin)、最小连接数(least-connected)和基于IP哈希(ip-hash),并展示了如何在Nginx配置中应用这些算法。此外,还涵盖了会话持久化、加权负载均衡以及健康检查的实践。
650

被折叠的 条评论
为什么被折叠?



