跳转至

2.3. 分支版本Tengine

  Tengine是由淘宝网技术团队发起的Nginx二次开 发项目,是在开源版Nginx及诸多第三方模块的基础 上,针对淘宝网的高并发需求进行的二次开发。其中 添加了很多针对互联网网站中使用Nginx应对高并发负 载、安全及维护等的功能和特性。

  据Tengine官网介绍,Tengine不仅在淘宝网上使 用,搜狗、天猫、大众点评、携程、开源中国等也在 使用,其性能和稳定性得到了有效检验。Tengine从 2011年12月开始成为开源项目,Tengine团队的核心成 员来自淘宝、搜狗等互联网企业。截至本书写作时, Tengine的最新版本是2.3.2,在继承Nginx 1.17.3版 本的所有功能的同时,也保持了自有的对Nginx的优化 和增强,其增强特性如下。

特性

  • 继承Nginx-1.18.0的所有特性,兼容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亲缘性;
  • 监控系统的负载和资源占用从而对系统进行保护;
  • 显示对运维人员更友好的出错信息,便于定位出错机器;;
  • 更强大的防攻击(访问速度限制)模块;
  • 更方便的命令行参数,如列出编译的模块列表、支持的指令等;
  • 支持Dubbo协议;
  • 可以根据访问文件类型设置过期时间;

  Tengine是基于Nginx开发的轻量级开源Web服务 器,作为阿里巴巴七层流量入口的核心系统,支撑着 阿里巴巴“双11”等大促活动的平稳度过,并提供了 智能的流量转发策略、HTTPS加速、安全防攻击、链路 追踪等众多高级特性,同时秉着软硬件结合的性能优 化思路,在高性能、高并发方面取得了重大突破。

  目前,Tengine正通过打通Ingress Controller和 Kubernetes使Tengine具备动态感知某个服务整个生命 周期的能力。未来,Tengine将定期开源内部通用组件功能模块,并同步Nginx官方的最新代码,丰富开发者 们的开源Web服务器选项。想了解更多内容的读者请参 阅官方网站http://tengine.taobao.org/。