Nginx之负载均衡

Posted 老王同鞋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx之负载均衡相关的知识,希望对你有一定的参考价值。

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

代码:

#负载均衡
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执行一次,...)

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

代码:

  1 upstream book {
  2     server 192.168.0.105:12306 weight=4;
  3     server 192.168.0.105:12307 weight=1;
  4     server 192.168.0.105:12308 backup;
  5 
  6 }
  7 
  8 
  9 server {
 10     server_name 192.168.0.105;
 11     listen 33333;
 12     location / {
 13         proxy_pass http://book/;
 14     }
 15 }

其中:

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负载均衡的设置。

以上是关于Nginx之负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx负载均衡之二配置负载均衡

负载均衡之Ribbon与LoadBalance

Net分布式系统之二:CentOS系统搭建Nginx负载均衡

Linux之nginx负载均衡

nginx之负载均衡

nginx如何做到TCP的负载均衡