Nginx负载均衡

1. 负载均衡的作用

1.1 转发

转发是负载均衡的核心功能,他是根据一定的算法,将客户端请求转发到不同服务器,缓解每台服务器的压力,提高并发量。

1.2 故障移除

当其中一台服务器发生故障时,会被移除轮询策略,客户端请求将会发送到其他几台正常的服务器,不会影响服务器的访问。

1.3 恢复添加

当故障的机器恢复后,会被增加到轮询队列,继续处理客户端请求。

2. Nginx配置

切记,Nginx默认配置是轮询算法
首先说一下,一定要在Nginx的安装目录安装目录安装目录进行配置,不要像我一样,在源文件的目录配置,整了一天也配置不出来!!!

2.1 轮询算法

如下是Nginx的基本配置,upstream配置要负载的节点。nodes可以自己取,要跟serverproxy_passnodes一致。

server_name可以是Nginx服务器的ip地址,也可以是域名,根据具体情况配置即可,listen为端口号。

upstream nodes {  
    server 192.168.1.11;  
    server 192.168.1.12;  
}   
  
server {  
        listen       80;  
        server_name  127.0.0.1;  
        #charset koi8-r;  
        #access_log  logs/host.access.log  main;  
        location / {  
           proxy_pass   http://nodes;  
           index  index.html index.htm;  
       }  
}

使用以上配置,默认采用轮询的分发策略,即每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。

2.2 权重

如果需要为每个请求节点配置不同的权重,可以在地址后面增加权重,配置如下

upstream nodes {  
    server 192.168.1.11 weight=4;  
    server 192.168.1.12;  
 } 

通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。weight默认为1,weight越大,负载的权重就越大。

2.3 Ip Hash算法

还有一种策略是IP哈希算法,请求按访问ip的hash结果分配,这样每个IP固定访问一个应用服务器,可以解决session共享的问题,配置如下

upstream nodes {  
    ip_hash; 
    server 192.168.1.11;  
    server 192.168.1.12;  
} 

因为访问者的IP地址是固定的,那么根据IP地址的Hash值也是感光固定的,那么一个ip就一直访问对应的那个服务器,不会跨服务器!

2.4 less_conn 最少连接

least_conn策略是将web请求分发到连接数最少的服务器上,参考配置如下:

upstream myserver{
	least_conn;
	server 192.167.40.3:8080;
	server 192.167.40.4:8081;
}
2.5 fiar(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream server_pool{
	server 192.168.5.21:80;
	server 192.168.5.22:80;
	fair;
}

fair不是Nginx内置的算法,需要安装第三方的插件才能生效!一般在Ningx中安装!

在一般的实际开发中,Nginx配置是轮询+权重

3 负载均衡备份与宕机

3.1 备份backup配置

当其他非backup机器挂掉后,才会请求backup机器,参考配置如下:

upstream myserver{
	server 192.167.40.3:8080;
	server 192.167.40.4:8081 backup;
}
3.2 宕机down配置

配置down的服务器不参与负载均衡,这样down所标记的服务器就可以安心的升级了,参考配置如下:

upstream myserver{
	server 192.167.40.3:8080;
	server 192.167.40.4:8081 down;
}

这两个配置多用于运维,维护某个机器的时候

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值