Nginx之负载均衡

魏莉的微 2020-02-21

所谓负载均衡,就是将多个任务按一定的规则分配给多个服务器,让每个服务器都能承载一定的任务数量。

代码:

#负载均衡
upstream backends {
    server 192.168.229.128:10086 ;  
    server 192.168.229.128:10087 ;  
    server 192.168.229.128:10088 ;
}
server {
    #监听的端口号
    listen 9001;
    #服务器
    server_name 192.168.229.128;
    location / {
        #指向代理
        proxy_pass http://backends/;
    }
}

Nginx的负载均衡,需要配合反向代理才能设置成功。

upstream 属性是设置负载均衡的关键字。

模板:

upstream 属性名{
    server 服务器地址        
}

在设置Nginx负载均衡时,我们会指定相关的算法进行任务数量的分配。

默认是采用轮询算法:即每个服务器处理一个任务,依照任务数量,依次执行。(A执行一次,B执行一次,...)

权重算法:即根据权重的值为指定的服务器分配,任务数量,权重值越大,服务器处理的任务数量就越多。

代码:

upstream book {
    server 192.168.0.105:12306 weight=4;
    server 192.168.0.105:12307 weight=1;
    server 192.168.0.105:12308 backup;

}


server {
    server_name 192.168.0.105;
    listen 33333;
    location / {
        proxy_pass http://book/;
    }
}

其中:

weight为权重值的属性;

backup为备机属性。

IP_HASH算法:根据用户的IP进行哈希运算后分配给每个用户固定的服务器IP地址,可以有效地解决动态网页共享的问题。

代码:

#负载均衡
upstream backends {
    ip_hash;
    server 192.168.229.128:10086 ;  
    server 192.168.229.128:10087 ;  
    server 192.168.229.128:10088 ;
}
server {
    #监听的端口号
    listen 9001;
    #服务器
    server_name 192.168.229.128;
    location / {
        #指向代理
        proxy_pass http://backends/;
    }
}

通过在upstream属性中,指定ip_hash关键字即可实现,采用ip_hash算法进行Nginx负载均衡的设置。

相关推荐