Nginx为我们默认提供了三种负载均衡的策略
1.轮询:将客户端发起的请求,平均分配给每一台服务器。
想实现Nginx轮询负载均衡机制只需要在.conf配置文件中添加以下内容
upstream 名字 { # 自己起的名字一定不要使用_下划线
server ip:port;
server ip:port;
...
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://upstream的名字/;
}
}
[root@localhost conf.d]# cd ..
[root@localhost docker_nginx]# docker-compose restart
Restarting nginx ... done
2.权重:会将客户端的请求,根据服务器的权重值不同,分配不同的数量。(服务器处理请求的速度不一致时,会用到)
# 在轮询的基础上加上weight=权重比例
upstream 名字 {
server ip:port weight=2; # 访问2次这个ip,才会访问下面1次
server ip:port weight=1;
...
}
3.ip_hash:基于发起请求的客户端的ip地址不同,他始终会将请求发送到指定的服务器上 就是说如果这个客户端的请求的ip地址不变,那么处理请求的服务器将一直是同一个
# 在轮询的基础上upsteream块里加上ip_hash即可
upstream 名字 {
ip_hash;
server ip:port;
server ip:port;
...
}