nginx负载均衡调度算法

时间:2024-07-09 17:25:22

负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务

默认的转发规则为轮循,按照配置顺序转发
1、轮循调度:
upstream meiduo {
server 172.16.203.91:6691;
server 172.16.203.91:6689;
server 172.16.203.91:6690;
}

server{
listen 172.16.203.91:6698;
location / {
proxy_pass http://meiduo;
}
}

server{
listen 172.16.203.91:6689;
location / {
return http://192.168.5.99;
}
}
server{
listen 172.16.203.91:6690;
location / {
return http://192.168.5.195:9999;
}
}
server{
listen 172.16.203.91:6691;
location /{
return 302 http://192.168.5.195:8092/sysware;
}
}

此处轮循算法将依次根据配置的server 端口6689、6690、6691依次循环调用
2、加权轮循:
根据权重决定优先级
upstream test{
server 172.16.203.92:6691;
server 172.16.203.92:6689 weight=2;
server 172.16.203.92:6690;
}

server{
listen 172.16.203.92:6698;
location / {
proxy_pass http://test;
}
}
server{
listen 172.16.203.92:6691;
location /{
return 302 http://www.baidu.com;
}
}
server{
listen 172.16.203.92:6689;
location / {
return https://www.taobao.com/;
}
}
server{
listen 172.16.203.92:6690;
location / {
return http://192.168.5.195:9999;
}
}
此处根据权重优先调用权重更高的
3、Ip hash:请求第一次落到哪台服务器,以后就是哪一台服务器提供数据
upstream meiduo {
ip_hash;
server 172.16.203.91:6691;
server 172.16.203.91:6689;
server 172.16.203.91:6690;
}

此处Ip hash算法若第一次调用了172.16.203.91:6691,后面继续调用只会使用该ip端口