Nginx负载均衡

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


nginx负载的几种方式,round robin 轮询,加权轮询,hash,random随机,least_conn(最小连接数法)
1、round robin 轮询
轮询是Nginx默认的策略,将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

upstream Clusterservices01{
server 192.168.43.151:8080;
server 192.168.43.152:8080;
}
server {
listen 80;
server_name test.csctbb.com;
root /app/nedy/test.csctbb.com/test;
proxy_pass http://Clusterservices01;

}

2、weight加权轮询
不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。

upstream Clusterservices02{
server 192.168.43.151:8080 weight=1;
server 192.168.43.152:8080 weight=2;
server 192.168.43.153:8080 weight=3;
}
server {
listen 80;
server_name test.csctbb.com;
root /app/nedy/test.csctbb.com/test;
proxy_pass http://Clusterservices02;

}

3、ip_hash(源地址哈希法)
根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客户端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

upstream Clusterservices03{
ip_hash;
server 192.168.43.151:8080 ;
server 192.168.43.152:8080 ;
server 192.168.43.153:8080 down;
server 192.168.43.154:8080 down;

}
server {
listen 80;
server_name test.csctbb.com;
root /app/nedy/test.csctbb.com/test;
location ^~ /nedy/nedn {
proxy_pass http://Clusterservices03;

}

}

1)配置了策略为ip_hash,监听80端口的的nginx服务,其中当请求url 为/nedy/nedn时,会走ip_hash策略;
2)负载均衡的机器有四台,其中后两台末尾添加了down关键字,表示下线的意思。

url_hash(通过请求url进行hash,再通过hash值选择后端server),大文件的场景,可以设置缓存一个月时间,来节省下载时间

upstream Clusterservices03 {
hash $request_uri;
server 192.168.43.151:8080;
server 192.168.43.152:8080;
server 192.168.43.153:8080;
server 192.168.43.154:8080;

}
server {
listen 80 default;
server_name test.csctbb.com;
charset utf-8;
location /bigfile {
proxy_pass http://Clusterservices03;

}
}

4、random随机

通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。

upstream Clusterservices04 {
random;
server 192.168.43.151:8080;
server 192.168.43.152:8080;
server 192.168.43.153:8080;
server 192.168.43.154:8080;

}
server {
listen 80 default;
server_name test.csctbb.com;
charset utf-8;
location /nedy {
proxy_pass http://Clusterservices04;

}
}

5、least_conn(最小连接数法)

由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。

upstream Clusterservices05 {
least_conn;
server 192.168.43.151:8080;
server 192.168.43.152:8080;
server 192.168.43.153:8080;
server 192.168.43.154:8080;

}
server {
listen 80 default;
server_name test.csctbb.com;
charset utf-8;
location /nedy {
proxy_pass http://Clusterservices05;

}
}

#加载配置
nginx -s reload


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: nginx