文档章节

Nginx几种负载均衡算法及配置实例

乱蓬头
 乱蓬头
发布于 2017/07/04 14:24
字数 966
阅读 122
收藏 0

摘要: Nginx负载均衡(工作在七层“应用层”)功能主要是通过upstream模块实现,Nginx负载均衡默认对后端服务器有健康检测的能力,仅限于端口检测,在后端服务器比较少的情况下负载均衡能力表现突出。 Nginx的几种负载均衡算法: 1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,则自动剔除故障机器,使用户访问不受影响。

Nginx负载均衡(工作在七层“应用层”)功能主要是通过upstream模块实现,Nginx负载均衡默认对后端服务器有健康检测的能力,仅限于端口检测,在后端服务器比较少的情况下负载均衡能力表现突出。

Nginx的几种负载均衡算法:

1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,则自动剔除故障机器,使用户访问不受影响。

2、weight:指定轮询权重,weight值越大,分配到的几率就越高,主要用于后端每台服务器性能不均衡的情况。

3、ip_hash:每个请求按访问IP的哈希结果分配,这样每个访客固定访问一个后端服务器,可以有效的解决动态网页存在的session共享问题。

4、fair(第三方):更智能的一个负载均衡算法,此算法可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。如果想要使用此调度算法,需要Nginx的upstream_fair模块。

5、url_hash(第三方):按访问URL的哈希结果来分配请求,使每个URL定向到同一台后端服务器,可以进一步提高后端缓存服务器的效率。如果想要使用此调度算法,需要Nginx的hash软件包。

在upstream模块中,可以通过server命令指定后端服务器的IP地址和端口,同时还可以设置每台后端服务器在负载均衡调度中的状态,常用的状态有以下几种:

1、down:表示当前server暂时不参与负载均衡。

2、backup:预留的备份机,当其他所有非backup机器出现故障或者繁忙的时候,才会请求backup机器,这台机器的访问压力最轻。

3、max_fails:允许请求的失败次数,默认为1,配合fail_timeout一起使用

4、fail_timeout:经历max_fails次失败后,暂停服务的时间,默认为10s(某个server连接失败了max_fails次,则nginx会认为该server不工作了。同时,在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。)

下面是一个负载均衡的配置示例,这里只列出http配置段,省略了其他部分配置:

http
{
upstream whsirserver {
server 192.168.0.120:80 weight=5 max_fails=3 fail_timeout=20s;
server 192.168.0.121:80 weight=1 max_fails=3 fail_timeout=20s;
server 192.168.0.122:80 weight=3 max_fails=3 fail_timeout=20s;
server 192.168.0.123:80 weight=4 max_fails=3 fail_timeout=20s;
}
server
{
listen 80;
server_name blog.whsir.com;
index index.html index.htm;
root /data/www;

location / {
proxy_pass http://whsirserver;
proxy_next_upstream http_500 http_502 error timeout invalid_header;
}
}
}

upstream负载均衡开始,通过upstream指定了一个负载均衡器的名称为whsirserver,这个名称可以自己定义,在后面proxy_pass直接调用即可。

proxy_next_upstream参数用来定义故障转移策略,当后端服务器节点返回500、502和执行超时等错误时,自动将请求转发到upstream负载均衡器中的另一台服务器,实现故障转移。

本文转载自:http://click.aliyun.com/m/24906/

共有 人打赏支持
乱蓬头
粉丝 0
博文 382
码字总数 2595
作品 0
nginx反向代理和负载均衡策略实战案例

欢迎关注:glmapper2018 引言 先来看下nginx在web服务器排名上的趋势: 存在即合理,那为什么要使用nginx呢?这得看看nginx能帮我们做些什么。 首先,nginx能做反向代理【关于反向代理和正向...

glmapper
04/22
0
0
kylin集群Nginx负载均衡

Nginx负载均衡 1, Nginx负载均衡简介 跨多个应用程序实例的负载平衡是优化资源利用率,最大化吞吐量,减少延迟以及确保容错配置的常用技术。 可以使用nginx作为非常高效的HTTP负载均衡器,将...

rlnlo2pnefx9c
2017/12/13
0
0
Nginx负载均衡与反向代理——扩展功能(NGINX Plus)

什么是NGINX Plus? 顾名思义,就是Nginx的加强版或者扩展版。我们知道Nginx是开源的、免费的,但是NGINX Plus的很多功能就需要收费了。Nginx Plus 可以作为一个负载均衡器,一个web服务器,...

xiaomin0322
05/22
0
0
搞懂分布式技术9:Nginx负载均衡原理与实践

Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》 原创: 张开涛 开涛的博客 2017-03-24 本篇摘自《亿级流量网站架构核心技术》第二章 Nginx负载均衡与反向代理 部分内容。 当我们的应...

你的猫大哥
06/22
0
0
Keepalived高可用集群应用场景与配置

1.Keepalived单实例主备模式集群方案 这是最简单的模式,不只考虑高可用集群,先不考虑后方的Nginx负载均衡集群,即后端的服务器集群,参考下面的图示: 其对应的Keepalived核心配置如下: ...

xpleaf
2017/03/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
0
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
6
2
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部