00:00
一文读懂什么是engine X?Engine X及其衍生产品是目前被大量使用的服务端反向代理和负载均衡方案。从某种意义上来讲,Engine X几乎是低成本、高负载web服务端代名词。如此深入人心的NGX,很多人也想当然的认为,在inim或消息推送等场景下,是否也能使用NGX来解决负载均衡问题。另外,即时通讯网的论坛和QQ群里也经常有人问题,NGX是否能支持tepp web socket的负载均衡?没有听过NX,那么一定听过它的同行apach吧。Engine X同APA一样,都是一种web服务器,基于rest架构风格,以统一资源苗束缚uniform resources identifier yui或者统一资源定位符uniform resources locator URL作为沟通依据,通过HTTP协议提供各种网络服务。然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模、网络带宽、产品特点等局限,并且各自的定位和发展都不尽相同,这也使得各个web服务器有着各自鲜明的特点。俄罗斯的工程师eggor HS oov使用C语言开发了engine X.
01:25
Engine X座为web服务器,一直为rambler media提供出色而又稳定的服务。3NGNEX最常见的用途、用法、使用场景什么是正向代理?来看个示意图,我把客户端和正向代理框在一块,同属于一个环境,后面我有介绍,客户端必须设置正向代理服务器,当然前提是要知道正代理服务器的IP地址,还有代理程序的端口,如下图所示。什么是反向代理?那么反向代理具体是通过什么样的方式实现的分布式的集群操作呢?我们先看一个示意图,我把服务器和反向代理框在一块,同属于一个环境,后面我有介绍,如下图所示。
02:11
典型的项目场景通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在。在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器。具体的拓扑图如下。正向代理和反向代理的区别图解如下,1、在正向代理中,Proxy和client同属于一个LA,图中方框内隐藏了客户端信息。2、在反向代理中,Proxy和server同属于一个LAN,图中方框内隐藏了服务端信息。Engine XT负载均衡技术负载均衡载实际项目操作过程中有硬件负载均衡和软件负载均衡两种。硬件负载均衡也称为硬负载,如F5负载均衡相对造价昂贵,成本较高。
03:07
但是数据的稳定性、安全性等等有非趁的保障,如中国移动、中国联通这样的公司才会选择应付再进行操作,更多的公司考虑到成本原因,会选择使用软件负载均衡。软件负载均衡是利用现有的技术,结合主机硬件实现的一种消息队列分发机制。5NGX对t puupp web socket的负载均衡支持engineg X从1.3版开始,支持webcket协议的反向代理负载均衡,从1.90版本开始,支持TSP协议返乡代理负载均衡,从一点九十三开始,支持upp协议返乡代理负载均衡。TP负载均衡的执行原理,当engine X从监听端口收到一个新的客户端链接时,立刻执行路由调度算法,获得指定需要连接的服务IP,然后创建一个新的上游连接。
04:05
连接到指定服务器,NGX监控客户端连接和上游连接,一旦接收到数据,则NGX会立刻读取并且推送到上游连接,不会做TCP连接内的数据检测。Engine X维护一份内存缓冲区,用于客户端和上游数据的写入。如果客户端或者服务端传输了量很大的数据,缓冲区会适当增加内存的大小。当Engine X收到任意一方的关闭连接通知或者TCP连接被闲置超过了proxy timeout配置的时间,连接将会被关闭。对于TC异常连接,我们更应该选择适当的proxy timeout的时间,同时关注监听sokki的sokki poli参数,防止过早的断开连接服务健状性监控TP负载均衡拈支持内置健状性检测。一台上游服务器如果拒绝TCP连接,超过proxy connect timeout配置的时间将会被认为已经失效。
05:04
在这种情况下,Engine X立刻尝试连接upstream组内的另一台正常的服务器。连接失败信息将会记录到engine X的错误日志中。NGX所支持的长连接反向代理数据走向能力对于利于NGX实现的socket,长连接数据走向如下图所示。
我来说两句