Nginx负载均衡调度算法及配置案例
1.round-robin—轮循
1.概念:对应用程序服务器的请求以轮循方式分发(默认的)
2.配置案例
1.基于ip
http {
..... 其他的内容
upstream myweb1 {
server 192.168.0.161;
server 192.168.0.162;
server 192.168.0.163;
}
server {
listen 80;
location / {
proxy_pass http://myweb1;
}
}
}
2.基于域名
#定义上游服务器集群,定义一个负载均衡器
upstream myweb1 {
server 192.168.0.161;
server 192.168.0.162;
server 192.168.0.163;
}
server {
listen 80;
server_name www.sc.com;
location / {
proxy_pass http://myweb1;
}
}
3.加权轮循(weight值越大权重越高,得到的请求数就会越多)
#定义上游服务器集群,定义一个负载均衡器
upstream myweb1 {
server 192.168.0.161 weight=1;
server 192.168.0.162 weight=3;
server 192.168.0.163 weight=6;
}
server {
listen 80;
server_name www.sc.com;
location / {
proxy_pass http://myweb1;
}
}
2.least-connected–最小连接数
1.概念:将下一个请求分配给活动连接数量最少的服务器
2.配置案例
#定义上游服务器集群,定义一个负载均衡器
upstream myweb1 {
least_conn;
server 192.168.0.161;
server 192.168.0.162;
server 192.168.0.163;
}
server {
listen 80;
server_name www.sc.com;
location / {
proxy_pass http://myweb1;
}
}
3.ip-hash
1.概念:哈希函数用于确定应为下一个请求选择哪个服务器(基于客户端的IP地址)
2.配置案例
让同一个ip地址的所有的请求都集中到一台服务器
#定义上游服务器集群,定义一个负载均衡器
upstream myweb1 {
ip_hash;
server 192.168.0.161;
server 192.168.0.162;
server 192.168.0.163;
}
server {
listen 80;
server_name www.sc.com;
location / {
proxy_pass http://myweb1;
}
}