1. Nginx负载均衡?nginx负载均衡策略,并利用nginx对应用服务器的负载均衡集群搭建。

在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。

 在upstream模块配置完成后,要让指定的访问反向代理到服务器列表:

        #其他页面反向代理到tomcat容器
        location ~ .*$ {
            index index.jsp index.html;
            proxy_pass http://dynamic_zuoyu;        }

1、轮询

最基本的配置方法,上面的例子就是轮询的方式,它是upstream模块默认的负载均衡默认策略。每个请求会按时间顺序逐一分配到不同的后端服务器。

fail_timeout  与max_fails结合使用。

max_fails : 设置在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内,所有针对该服务器的请求都失败了,那么认为该服务器会被认为是停机了。

fail_time:服务器会被认为停机的时间长度,默认为10s。

Backup:标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里。

down:标记服务器永久停机了

注意:  在轮询中,如果服务器down掉了,会自动剔除该服务器。 缺省配置就是轮询策略。 此策略适合服务器配置相当,无状态且短平快的服务使用。

2、weight

  权重方式,在轮询策略的基础上指定轮询的几率。例子如下:

#动态服务器组

upstream dynamic_zuoyu {

server localhost:8080   weight=2;  #tomcat 7.0

server localhost:8081;  #tomcat 8.0

server localhost:8082   backup;  #tomcat 8.5

server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0

}

在该例子中,weight参数用于指定轮询几率,weight的默认值为1,;weight的数值与访问比率成正比,比如Tomcat 7.0被访问的几率为其他服务器的两倍。

  注意:

  • 权重越高分配到需要处理的请求越多。
  • 此策略可以与least_conn和ip_hash结合使用。
  • 此策略比较适合服务器的硬件配置差别比较大的情况。

3、ip_hash

  指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。

#动态服务器组

upstream dynamic_zuoyu {

ip_hash;    #保证每个访客固定访问一个后端服务器

server localhost:8080   weight=2;  #tomcat 7.0

server localhost:8081;  #tomcat 8.0

server localhost:8082;  #tomcat 8.5

server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0

}

注意:

  • 在nginx版本1.3.1之前,不能在ip_hash中使用权重(weight)。
  • ip_hash不能与backup同时使用。
  • 此策略适合有状态服务,比如session。
  • 当有服务器需要剔除,必须手动down掉。

4、least_conn

  把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。

#动态服务器组

upstream dynamic_zuoyu {

least_conn;    #把请求转发给连接数较少的后端服务器

server localhost:8080   weight=2;  #tomcat 7.0

server localhost:8081;  #tomcat 8.0

server localhost:8082 backup;  #tomcat 8.5

server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0

}

注意:此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。

5、第三方策略

  第三方的负载均衡策略的实现需要安装第三方插件。

①fair

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

#动态服务器组

upstream dynamic_zuoyu {

server localhost:8080;  #tomcat 7.0

server localhost:8081;  #tomcat 8.0

server localhost:8082;  #tomcat 8.5

server localhost:8083;  #tomcat 9.0

fair;    #实现响应时间短的优先分配

}

②url_hash

  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。 

    #动态服务器组
    upstream dynamic_zuoyu {
        hash $request_uri;    #实现每个url定向到同一个后端服务器
        server localhost:8080;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082;  #tomcat 8.5
        server localhost:8083;  #tomcat 9.0
    }

总结:

  以上便是6种负载均衡策略的实现方式,其中除了轮询和轮询权重外,都是Nginx根据不同的算法实现的。在实际运用中,需要根据不同的场景选择性运用,大都是多种策略结合使用以达到实际需求。

转载于:https://www.cnblogs.com/wyf-love-dch/p/11552619.html

nginx负载均衡的方法相关推荐

  1. Nginx负载均衡的详细配置及使用案例

    Nginx负载均衡的详细配置及使用案例详解 感谢看过这一些列博文和评论的小伙伴, 我把自己所看到的学到的拿到这里来分享是想和大家一起学习进步, 想听听园友给出的意见, 也是对自己学习过程的一个总结.  ...

  2. Nginx负载均衡配置实例详解

    负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...

  3. Nginx负载均衡:分布式/热备Web Server的搭建

    Nginx是一款轻量级的Web server/反向代理server及电子邮件(IMAP/POP3)代理server.并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开 ...

  4. 解决nginx负载均衡高可用keepalived只针对物理机的问题

    在高可用keepalived软件,在默认的情况下仅仅在对方机器宕机或keepalived停掉的时候才会接管业务. 但是在实际工作过程中,例如在nginx负载均衡工作实例中,nginx服务已停止,而ke ...

  5. Nginx负载均衡配置实例详解(转)

    | 时间:2013-09-05 20:19:17 | 阅读数:810738 [导读] 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的 ...

  6. linux window nginx性能,Nginx负载均衡搭建(Window与Linux)

    windows上搭建nginx负载均衡 1.准备几台http服务器软件,这里选用一台apache一台tomcat apache(windows)下载链接:https://www.apachehaus. ...

  7. nginx负载均衡的简单实现

    负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...

  8. nginx负载均衡与反向代理

    [1]负载均衡 1)问题:如何在多个网络设备或服务器之间实现合理的业务量分配,使之不会出现一台设备过忙,而其他设备却没有充分使用的情况. 2)解决方法:要解决这一问题,可以采用负载均衡的方法: 3)负 ...

  9. Nginx负载均衡配置和健康检查

    Nginx负载均衡配置和健康检查 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. nginx的强大之处不必要我细说,当初第一次接触ngin ...

  10. nginx负载均衡 加权轮询和ip_hash

    下面给大家总结了几种真正的nginx负载均衡的功能了,在此我们加了一个权重判断法就是根据nginx负载的状态实现分配访问用户到权重值少的机器了,具体配置如下. nginx为后端web服务器(apach ...

最新文章

  1. 小程序门店自提功能开启,酷客多带你玩转O2O模式
  2. windows核心编程之进程间共享数据
  3. 如何自学python数据分析-良心整理!学习Python数据分析的正确姿势
  4. WinAPI: GetWindow - 获取与指定窗口具有指定关系的窗口的句柄
  5. python程序代码是什么_python编程:下列代码表示什么含义
  6. 微软发布Azure Functions、Service Fabric和IoT Starter Kits新服务
  7. Android之通过ContentResolver获取手机图片和视频的路径和生成缩略图和缩略图路径
  8. P2168 [NOI2015] 荷马史诗(哈夫曼编码树)
  9. 《JSON笔记之三》---postman中传入json串
  10. plc有与计算机的通讯请求时,OMRON PLC网络Ethernet网_OMRON PLC与上位计算机之间的通信_OMRON PLC与上位计算机通信程序-维库电子通...
  11. 用Instant client批量安装Oracle客户端-安装配置
  12. getUpdateCount成员函数不能返回正确数量
  13. 从零开始搭建自己的网站四:博客网站模板下载
  14. SEO为什么一定要面面俱到?
  15. 1000+份计算机paper,卡耐基梅隆大学,芝加哥大学,facebook,google,微软,twitter等大牛一作,持续更新中...
  16. html调用ckplayer说明,CKplayer功能配置(示例代码)
  17. 2021年国家统计局发布全国统计用区划代码和城乡划分代码
  18. 今日头条秋招前端笔试附加题解题思路
  19. matlab 如何读取二进制、十六进制txt文档
  20. Problem fzu 2027 单词问题

热门文章

  1. mysql 创建数据库文件_mysql数据库的文件创建方式 - mysql数据库栏目 - 自
  2. 【Listener】监听器基础
  3. mysql/mariadb 安装开启spinx引擎
  4. windows10防Linux,用户禁用Defender提升Win10 Linux子系统性能
  5. java 2d 图形_Java学习笔记--Swing2D图形
  6. 解决(Missing artifact com.oracle:ojdbc14:jar:11.2.0.4.0)
  7. 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_08.RequestMapping注解的作用
  8. 今天突然出现了Property IsLocked is not available for Login '[sa]',我太阳,下面有绝招对付它!...
  9. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_05 IO字符流_6_字符输出流写数据的其他方法...
  10. el-dialog 一些问题 局中滚动