北京期间 3 月 12 日,F5 与 Nginx 发表了一项最终协定,依据该协定,F5 将收买 Nginx 的一切已发行股票,总价值约为 6.7亿美元。
此次收买已取得 F5 和 Nginx 董事会的同意,估量将于 2019 年第二季度成功。收买成功后,Nginx 控制层将参与F5,现有的办事处也将继续坚持放开。
F5 是运行交付网络(ADN)畛域的环球上游厂商,Nginx 是环球上经常使用最宽泛的第三大网络主机软件,仅次于微软和Apache,上游于谷歌,其最出名产品 Nginx 是互联网上***的 Web 主机之一。
作为 Web 服务的中心,Nginx 坚持着开源的方式,象征着任何人都可以依照自己的志愿下载和经常使用代码。
近年来,Nginx 将关键精神放在了 Nginx Plus 这项付费初级服务上,旨在协助开发人员在亚马逊 AWS 和微软 Azure云平台上构建现代运行程序。
显然,这就是 F5 和 Nginx ***的竞争角力点,但也是兼并收买的意义所在。
比如 F5 可以确保其运行程序和软件的高度安保和高性能,但又有一些产品与 Nginx 和 Nginx Plus 开展了间接的竞争。
F5 Networks ***口头官兼总裁 FrançoisLocoh-Donou 美化 Nginx 为上游的软件运行交付和 API控制处置方案,领有***的可信度和品牌认知度、以及宏大的开源用户群。
收买后,Nginx 品牌及其位于旧金山的总部将继续存在,但双方方案推出与 F5 其余安保与运行程序监控工具的更深度集成。
收买申明指出,此次战略收买和无机投资,将确保常年支出和每股盈利增长。
F5 和 Nginx 将在一切环境中成功多云运行服务,提供开发人员所需的易用性和灵敏性,同时还提供网络运营团队所需的规模、安保性和牢靠性等才干。
此外,F5 将努力于继续翻新并参与对 Nginx 开源名目的投资,以增强 Nginx 宽泛的用户个体才干。
F5 将经过 F5 安保处置方案增强 Nginx 目前的产品,并将 F5 云原生翻新与 Nginx 的软件负载平衡技术相集成,从而减速 F5为现代容器化运行提供运行服务的上市期间。
F5 还将应用其环球开售团队、渠道基础设备和协作同伴生态系统来裁减 Nginx 向企业开售的时机。
关于本次收买,业界普遍还是比拟看好的,看看网友的评论:
你们以为软件负载平衡的 Nginx 遇上配件负载平衡的 F5,能够软硬联合、一统天下吗?
罕用的负载平衡开源软件有 Nginx、LVS、HAProxy,商业的配件负载平衡设备 F5、Netscale。接上去给大家遍及下 LVS、Nginx 及HAProxy 上班原理。
大少数的互联网系统都经常使用了主机集群技术,集群是将相反服务部署在多台主机上造成一个集群全体对外提供服务。
这些集群可以是 Web 运行主机集群,也可以是数据库主机集群,还可以是散布式缓存主机集群等等。
在实践运行中,在 Web 主机集群之前总会有一台负载平衡主机,负载平衡设备的义务就是作为 Web 主机流量的入口,筛选最适合的一台 Web主机,将客户端的恳求转发给它处置,成功客户端到实在服务端的透明转发。
最近几年很火的云计算以及散布式架构,实质上也是将后端主机作为计算资源、存储资源,由某台控制主机封装成一个服务对外提供。
客户端不须要关心真正提供服务的是哪台机器,在它看来,就如同它面对的是一台领有近乎***才干的主机,而实质上,真正提供服务的,是后端的集群。
LVS、Nginx、HAProxy是目前经常使用最宽泛的三种软件负载平衡软件。普通对负载平衡的经常使用是随着网站规模的优化依据不同的阶段来经常使用不同的技术。
详细的运行需求还得详细剖析:
目前关于网站架构普通比拟正当盛行的架构方案:
Nginx 是一个弱小的 Web 主机软件,用于处置高并发的 HTTP恳求和作为反向代理主机做负载平衡。具备高性能、轻量级、内存消耗少,弱小的负载平衡才干等好处。
Nignx 的架构设计
相关于传统基于进程或线程的模型(Apache就驳回这种模型)在处置并发衔接时会为每一个衔接建设一个独自的进程或线程,且在网络或许输入/输入操作时阻塞。
这将造成内存和 CPU 的少量消耗,由于新起一个独自的进程或线程须要预备新的运转时环境,包含堆和栈内存的调配,以及新的口头高低文。
当然,这些也会造成多余的 CPU 开支。最终,会由于过多的高低文切换而造成主机性能变差。
反过去,Nginx 的架构设计是驳回模块化的、基于事情驱动、异步、复线程且非阻塞。
Nginx 少量经常使用多路复用和事情通知,Nginx 启动,会在系统中以 Daemon 的方式在后盾运转,其中包含一个 Master进程,n(n>=1) 个 Worker 进程。
一切的进程都是复线程(即只要一个主线程)的,且进程间通讯关键经常使用共享内存的方式。
其中,Master 进程用于接纳来自外界的信号,并给 Worker 进程发送信号,同时监控 Worker 进程的上班形态。
Worker 进程则是外部恳求真正的处置者,每个 Worker 恳求相互独立且对等的竞争来自客户端的恳求。
恳求只能在一个 Worker 进程中被处置,且一个 Worker 进程只要一个主线程,所以同时只能处置一个恳求。(原理同 Netty 很像)
Nginx 负载平衡
Nginx 负载平衡关键是对七层网络通讯模型中的第七层运行层上的 HTTP、HTTPS 启动允许。Nginx 是以反向代理的方式启动负载平衡的。
反向代理(Reverse Proxy)方式是指以代理主机来接受 Internet上的衔接恳求,而后将恳求转发给外部网络上的主机,并将从主机上失掉的结果前往给 Internet上恳求衔接的客户端,此时代理主机对外就体现为一个主机。
Nginx 成功负载平衡的调配战略有很多,Nginx 的 Up Stream 目前允许以下几种方式:
Nginx 的好处:
Nginx 的缺陷:
LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚构主机。
如今 LVS 曾经是 Linux 规范内核的一局部,从 Linux2.4 内核,曾经齐全内置了 LVS的各特性能模块,无需给内核打任何补丁,可以间接经常使用 LVS 提供的各种性能。
LVS 自从 1998 年开局,开展到如今曾经是一个比拟成熟的技术名目了。
LVS 的体系结构
LVS 架设的主机集群系统有三个局部组成:
LVS 负载平衡机制
LVS 不像 HAProxy 等七层软负载面向的是 HTTP 包,所以七层负载可以做的 URL 解析等上班,LVS 不可成功。
LVS 是四层负载平衡,也就是说建设在 OSI 模型的第四层——传输层之上,传输层上有咱们相熟的 TCP/UDP,LVS 允许 TCP/UDP的负载平衡。
由于 LVS 是四层负载平衡,因此它相关于其余上层负载平衡的处置方法,比如 DNS域名轮番解析、运行层负载的调度、客户端的调度等,它的效率是十分高的。
所谓四层负载平衡 ,也就是关键经过报文中的指标地址和端口。七层负载平衡 ,也称为“内容替换”,也就是关键经过报文中的真正无心义的运行层内容。
LVS 的转发关键经过修正 IP 地址(NAT 形式,分为源地址修正 SNAT 和指标地址修正 DNAT)、修正指标 MAC(DR 形式)来成功。
①NAT 形式:网络地址转换
NAT(Network Address Translation)是一种外网和内网地址映射的技术。
NAT 形式下,网络数据报的进出都要经过 LVS 的处置。LVS 须要作为 RS(实在主机)的网关。
当包抵达 LVS 时,LVS 做指标地址转换(DNAT),将指标 IP 改为 RS 的 IP。
RS 接纳到包,似乎是客户端间接发给它的一样。RS 处置完,前往照应时,源 IP 是 RS IP,指标 IP 是客户端的 IP。
这时 RS 的包经过网关(LVS)中转,LVS 会做源地址转换(SNAT),将包的源地址改为 VIP,这样,这个包对客户端看起来就似乎是 LVS间接前往给它的。
②DR 形式:间接路由
DR 形式下须要 LVS 和 RS 集群绑定同一个 VIP(RS 经过将 VIP 绑定在 loopback 成功)。
但与 NAT 的不同点在于:恳求由 LVS 接受,由实在提供服务的主机(Real Server,RS)间接前往给用户,前往的时刻不经过 LVS。
详细来看,一个恳求过去时,LVS 只须要将网络帧的 MAC 地址修正为某一台 RS 的 MAC,该包就会被转发到相应的 RS 处置,留意此时的源 IP和指标 IP 都没变,LVS 只是做了一下移花接木。
RS 收到 LVS 转发来的包时,链路层发现 MAC 是自己的,到下面的网络层,发现 IP 也是自己的,于是这个包被非法地接受,RS 感知不到前面有LVS 的存在。
而当 RS 前往照应时,只需间接向源 IP(即用户的 IP)前往即可,不再经过 LVS。
DR 负载平衡形式数据散发环节中不修正 IP 地址,只修正 Mac 地址。
由于实践处置恳求的实在物理 IP 地址和数据恳求目的 IP地址分歧。所以不须要经过负载平衡主机启动地址转换,可将照应数据包间接前往给用户阅读器,防止负载平衡主机网卡带宽成为瓶颈。
因此,DR 形式具备较好的性能,也是目前大型网站经常使用最宽泛的一种负载平衡手腕。
LVS 的好处:
LVS 的缺陷:
HAProxy 允许两种代理形式 TCP(四层)和 HTTP(七层),也是允许虚构主机的。
HAProxy 的好处能够补充 Nginx 的一些缺陷,比如允许 Session 的坚持,Cookie 的疏导;同时允许经差错掉指定的 url来检测后端主机的形态。
HAProxy 跟 LVS 相似,自身就只是一款负载平衡软件;单纯从效率过去讲 HAProxy 会比 Nginx有更杰出的负载平衡速度,在并发处置上也是优于 Nginx 的。
HAProxy 允许 TCP 协定的负载平衡转发,可以对 MySQL 读启动负载平衡,对后端的 MySQL 节点启动检测和负载平衡,大家可以用LVS+Keepalived 对 MySQL 主从做负载平衡。
HAProxy 负载平衡战略十分多: