Nginx 负载均衡配置
Contents
Ningx 配置负载均衡
注意,默认情况下,它使用的是轮询的方式来进行负载均衡的。
示例配置代码
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,轮询(默认策略,Default)
这也是默认情况下的策略。
即第一个请求发给 srv1, 第二个请求发给srv2,第三个请求给srv3,第四个请求又给srv1,如此循环下去。
Session persistence, 会话持久化的方式
即, ip_hash
示例代码:
upstream myapp1 {
ip_hash;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
最近连接优先处理,Least connected load balancing
示例代码
upstream myapp1 {
least_conn;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
按权重的方式,Weighted load balancing
示例代码
upstream myapp1 {
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}
默认情况下,权重为1.
负载均衡的健康检查
max_fails
指令,是指在fail_timeout
时间内,最大的失败尝试次数。
默认情况下,max_fails
为1, 如果设置为0,则表示禁用健康检查。
默认情况下,fail_timeout
为10.