【中间件】Nginx 6种负载均衡策略
Ngnix是一款高性能反向代理服务器,本文主要介绍Nginx的6种负载均衡策略。
Nginx常用的6种负载均衡策略:
1RR(round robin :轮询 默认)
每个请求按时间顺序逐一分配到不同的后端服务器,也就是说第一次请求分配到第一台服务器上,第二次请求分配到第二台服务器上,如果只有两台服务器,第三次请求继续分配到第一台上,这样循环轮询下去,也就是服务器接收请求的比例是 1:1, 如果后端服务器down掉,能自动剔除。轮询是默认配置,不需要太多的配置。
同一个项目分别使用8081和8082端口启动项目
upstream web_servers {
server localhost:8081;
server localhost:8082;
}
server {
listen 80;
server_name localhost;
#access_log logs/host.access.log main;
location / {
proxy_pass http://web_servers;
proxy_set_header Host $host:$server_port;
}
2 热备
假设有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。服务器处理请求的顺序:主服务器突然A挂了,服务器处理请求的顺序:切换到备用服务器B。
upstream web_servers {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #热备
}
3 权重
根据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:A-B-B。
upstream web_servers {
server localhost:8081 weight=1;
server localhost:8082 weight=2;
}
4 ip_hash
这样每个ip地址固定访问一个后端服务器,可以解决session的问题。
upstream test {
ip_hash;
server localhost:8080;
server localhost:8081;
}
5 fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。这个配置是为了更快的给用户响应。
upstream backend {
fair;
server localhost:8080;
server localhost:8081;
}
6 url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。在upstream中加入hash语句,hash_method是使用的hash算法
upstream backend {
hash_method crc32;
hash $request_uri;
server localhost:8080;
server localhost:8081;
}
以上6种负载均衡各自适用不同情况下单独或者混合使用,可以根据实际情况选择使用,fair和url_hash需要安装第三方模块才能使用。
--END--
欢迎关注【辉哥传书vlog】头条号,喜欢记得点赞、收藏、评论、转发哦!