Nginx专题(四)-Nginx配置实例-负载均衡
  eZw8kcl3fQWu 2023年11月02日 48 0


文章目录


1.引言

随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品,很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎,nginx 就是其中的一个,在linux下有Nginx、 LVS、 Haproxy 等等服务可以提供负载均衡服务。

2.负载均衡的作用

转发

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

移除故障

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

恢复添加

当故障的服务器恢复时,会自动被加到轮询队列,继续处理客户端请求。

Nginx专题(四)-Nginx配置实例-负载均衡_服务器

3.Nginx配置

3.1.轮询

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

​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掉,自动剔除,剩下的继续轮询。

3.2.权重

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

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

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

3.3.IP哈希算法

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

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

3.4.least_conn最少连接

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

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

3.5.fair(第三方)

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

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

4.负载均衡备份与宕机

4.1.备份backup配置

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

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

4.2.宕机down配置

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

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

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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  ehrZuhofWJiC   2024年05月17日   44   0   0 服务器linux
eZw8kcl3fQWu