Nginx负载均衡

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 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;
}

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

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
77 2
|
1天前
|
负载均衡 应用服务中间件 nginx
Nginx怎么去做负载均衡?
Nginx的负载均衡器配置就完成了,而且由于Nginx的配置文件结构清晰而且简洁,调整和维护也相对方便。通过上述步骤,你可以将Nginx设置为一款强大的负载均衡器,提升服务器集群的处理能力及高可用性。
10 4
|
10天前
|
域名解析 负载均衡 网络协议
双重神器合璧,流量洪流中的稳如磐石:揭秘Bind+Nginx负载均衡的超级力量!
【8月更文挑战第9天】在现代网站架构中,负载均衡至关重要,它通过分散客户端请求至多台服务器,确保了系统的高可用性和稳定性。本文介绍如何结合Bind与Nginx实现高效负载均衡。Bind作为DNS服务器,可为单一域名解析出多个IP地址;Nginx作为高性能HTTP服务器,则在这些IP对应的服务器间智能分配流量。通过配置Bind的A记录与Nginx的`upstream`和`proxy_pass`指令,我们能够构建一个既稳定又易扩展的负载均衡系统,显著提升用户体验与系统可靠性。
34 11
|
7天前
|
负载均衡 监控 算法
Nginx:负载均衡小专题(二)
Nginx:负载均衡小专题(二)
23 2
|
7天前
|
负载均衡 监控 网络协议
Nginx:负载均衡小专题(三)
Nginx:负载均衡小专题(三)
29 1
|
7天前
|
负载均衡 监控 算法
Nginx:负载均衡小专题(一)
Nginx:负载均衡小专题(一)
33 1
|
21天前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
22 1
|
26天前
|
运维 负载均衡 算法
SLB与NGINX的异同是什么
SLB与NGINX的异同是什么
53 2
|
12天前
|
负载均衡 网络协议 应用服务中间件
nginx-http反向代理与负载均衡
nginx-http反向代理与负载均衡
|
2月前
|
JSON 负载均衡 应用服务中间件
Nginx反向代理与负载均衡
Nginx反向代理与负载均衡