对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。

目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。

我们使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里就简单介绍下这两种技术:

l 软件负载均衡解决方案

在一台服务器的操作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们管理系统平台使用的也是这款均衡器)。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分的负载均衡需求。

一、什么是Nginx

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 可以说Nginx 是目前使用最为广泛的HTTP软负载均衡器,其将源代码以类BSD许可证的形式发布(商业友好),同时因高效的性能、稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名于业界。像腾讯、淘宝、新浪等大型门户及商业网站都采用Nginx进行HTTP网站的数据分流。

二、Nginx的功能特点

1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;

2、Nginx对网络的依赖比较小;

3、Nginx安装和配置比较简单,测试起来比较方便;

4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;

5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;

6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;

7、Nginx能支持http和Email,这样就在适用范围上面小很多;

8、不支持Session的保持、对Big request header的支持不是很好,另外默认的只有Round-robin和IP-hash两种负载均衡算法。

三、Nginx的原理

Nginx采用的是反向代理技术,代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。反向代理负载均衡技术是把将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。

l 硬件负载均衡解决方案

直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器。由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。 一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵,比如最常见的就是F5负载均衡器。

什么是F5 BIG-IP

F5负载均衡器是应用交付网络的全球领导者F5 Networks公司提供的一个负载均衡器专用设备,F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率×××、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用***过滤、拒绝服务(DoS)***和SYN Flood保护、防火墙—包过滤、包消毒等功能。

以下是F5 BIG-IP用作HTTP负载均衡器的主要功能:
  ①、F5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。
  ②、F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。
  ③、F5 BIG-IP具有动态Session的会话保持功能。
  ④、F5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。

l 两方案对比

方案对比

基于硬件的方式(F5)

优点

能够直接通过智能交换机实现,处理能力更强,而且与系统无关,负载性能强更适用于一大堆设备、大访问量、简单应用

缺点

成本高,除设备价格高昂,而且配置冗余.很难想象后面服务器做一个集群,但最关键的负载均衡设备却是单点配置;无法有效掌握服务器及应用状态.

硬件负载均衡,一般都不管实际系统与应用的状态,而只是从网络层来判断,所以有时候系统处理能力已经不行了,但网络可能还来 得及反应(这种情况非常典型,比如应用服务器后面内存已经占用很多,但还没有彻底不行,如果网络传输量不大就未必在网络层能反映出来)

基于软件的方式(Nginx)

优点

基于系统与应用的负载均衡,能够更好地根据系统与应用的状况来分配负载。这对于复杂应用是很重要的
性价比高,实际上如果几台服务器,用F5之类的硬件产品显得有些浪费,而用软件就要合算得多,因为服务器同时还可以跑应用做集群等。

缺点

负载能力受服务器本身性能的影响,性能越好,负载能力越大。

综述

对我们管理系统应用环境来说,由于负载均衡器本身不需要对数据进行处理,性能瓶颈更多的是在于后台服务器,通常采用软负载均衡器已非常够用且其商业友好的软件源码授权使得我们可以非常灵活的设计,无逢的和我们管理系统平台相结合。

转载于:https://blog.51cto.com/cookingbsd/920351

负载均衡器技术 Nginx VS F5 Big-IP相关推荐

  1. 负载均衡器技术Nginx和F5的优缺点对比

    负载均衡器技术Nginx和F5的优缺点对比 博客分类: 应用服务 F5nginx  对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的 ...

  2. 千亿流量拦截控制处理技术-Nginx(安装 命令 路由匹配 负载均衡 常用配置)

    千亿流量拦截控制处理技术-Nginx Nginx使用与配置 1 什么是nginx 1.1 可大量并行处理 1.2 与 Apache 相比 1.2.1 Apache VS Nginx 1.2.2 常用w ...

  3. Nginx与F5的区别

    对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器. 目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡 ...

  4. linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...

    Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...

  5. 近 45 亿元拿下开源服务器 Nginx,F5 买断应用交付未来?

    "待价而沽"几个月后,著名开源 Web 服务器厂商 Nginx 终是把自己卖给了"对家"-- 图源:Nginx 官网 如何挑战百万年薪的人工智能! https: ...

  6. 连接 F5 大 IP 设备

    重要 Azure Sentinel 中的 F5 大 IP 数据连接器目前为公共预览版. 此功能在提供时没有服务级别协议,不建议用于生产工作负荷. 某些功能可能不受支持或者受限. 有关详细信息,请参阅  ...

  7. Nginx设置禁止通过IP访问服务器

    Nginx设置禁止通过IP访问服务器 2010-02-02 14:16:40|  分类: LNMP |  标签: |字号大中小 订阅 今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问, ...

  8. nginx+lua+redis deny ip

    2019独角兽企业重金招聘Python工程师标准>>> nginx+lua+redis实现ip黑名单 1.安装LuaJIT LuaJIT LuaJIT即采用C语言写的Lua代码的解释 ...

  9. nginx使用用户真实IP做hash(解决经过CND后ip_hash失效问题)

    nginx使用用户真实IP做hash(解决经过CND后ip_hash失效问题) 参考文章: (1)nginx使用用户真实IP做hash(解决经过CND后ip_hash失效问题) (2)https:// ...

最新文章

  1. 除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法启动FTP站点。服务目前已停止...
  2. sublime开发python需要安装哪些插件_Sublime text 3搭建Python开发环境及常用插件安装...
  3. 考试 彩色 离散化+类暴力
  4. C语言中的“悬空指针”和“野指针”是什么意思?
  5. 前端学习(2818):小程序学习之文件建立
  6. PlSqlDev中执行INSERT SQL语句包含符号导致数据异常
  7. asp.net 性能优化细节
  8. Windows系统过滤病毒功能吗
  9. 两向量叉乘的计算公式_向量的叉乘运算法则
  10. python学生成绩分析与预测
  11. 哪个表示经度?哪个表示纬度?是X是经度?还是Y表示经度?
  12. Prematurely reached end of stream
  13. 让树莓派不再吃灰(Raspberry+Docker+Portainer+青龙面板+甜糖+网心云)
  14. 有道云笔记客户端的下载和安装、使用(博主推荐)
  15. 当我说转行大数据工程师时,众人笑我太疯癫,直到四个月后......
  16. CRC碰撞概率 与CRC校验长度的理解
  17. 产品设计杂谈--微信篇
  18. C语言暴力破解偶然在论坛上看到的一个推理题
  19. pkuseg,LTP,jieba分词实践
  20. 外卖餐饮管理系统开发源码

热门文章

  1. Windows Phone:如何检查WMAppManifest中的Capability属性
  2. VI连接esx主机时报错“client.xml”错误
  3. 如何设置SQL Server 全文搜索
  4. 云网融合 — 应用场景
  5. LVS 四层 TCP/UDP 负载均衡器
  6. 用 Flask 来写个轻博客 (35) — 使用 Flask-RESTful 来构建 RESTful API 之四
  7. 位置式PID与增量式PID的介绍和代码实现
  8. Linux内核Makefile
  9. TLS 1.3 Handshake Protocol (下)
  10. MySQL数据库分表分区