nginx开源版本与nginx plus企业版、openresty 、Tengine的版本选择
nginx开源版本与nginx plus企业版、openresty 、Tengine他们都是web服务器和负载软件。他们有哪些区别?web服务器怎样选择?
1 nginx特性
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率
作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。
作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器)
现在nginx有免费的开源版本,也有收费的企业版nginx plus 。
2 openresty特性
OpenResty (简称OR 一种整合了Nginx和lua的框架) 是一个基于 Nginx 与 Lua 的高性能 Web 平台( ,其内部集成了大量精良的Lua Api,第三方模块以及常用的依赖项,基于这些能力,我们可以利用OR快速方便的搭建能够处理超高并发的,极具动态性和扩展的Web应用、Web服务和动态网关。
Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。它最大的特点就是用同步的代码逻辑实现非阻塞的调用,其次它有单进程内的 LRU cache 和进程间的 share DICT cache,而且它是揉合 nginx 和 LuaJIT 而产生。
3 tengine特性
Tengine是由淘宝网发起的Web服务器项目。
继承Nginx-1.17.3的所有特性,兼容Nginx的配置;
支持HTTP的CONNECT方法,可用于正向代理场景;
支持异步OpenSSL,可使用硬件如:QAT进行HTTPS的加速与卸载;
增强相关运维、监控能力,比如异步打印日志及回滚,本地DNS缓存,内存监控等;
Stream模块支持server_name指令;
更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
动态脚本语言Lua支持。扩展功能非常高效简单;
支持按指定关键字(域名,url等)收集Tengine运行状态;
组合多个CSS、JavaScript文件的访问请求变成一个请求;
自动去除空白字符和注释从而减小页面的体积
自动根据CPU数目设置进程个数和绑定CPU亲缘性;
监控系统的负载和资源占用从而对系统进行保护;
显示对运维人员更友好的出错信息,便于定位出错机器;
更强大的防攻击(访问速度限制)模块;
更方便的命令行参数,如列出编译的模块列表、支持的指令等;
可以根据访问文件类型设置过期时间;
4 负载服务器选择
nginx可以适用大部分web场景,也是目前互联网公司常用的选择。
如有特殊场景可以使用openresty(动态网关和扩展服务)。但上手时间有点长。如果你是一个技术极客推荐用这个。
tenginx可以说是nginx的定制改良版本。并发性能会有所提升。