Tengine 是啥,和nginx有什么关系

曾经有过帮同事抢购春运车票的经历,所以也一度为了12306春运的卡顿而上火,但冷静想想,平时门可罗雀,要应对突然间的车水马龙,确实有点难办。比起12306,NOI官网车水马龙的时间估计都不能按天算,也就是出成绩的那几个小时。焦急想知道成绩的亲们一拥而入,于是网站就躺平了。

Tengine 是啥,和nginx有什么关系

干等无事,瞟到这个错误提示,nginx略懂,这个Tengine 又是个啥?

Tengine

Tengine 是由中国淘宝网发起并开源的一款高性能、高稳定性的 Web 服务器 和 反向代理 软件。它是基于全球最流行的 Web 服务器 Nginx 开发的,可以理解为是 Nginx 的一个功能更丰富、特别针对大规模网站场景优化的“增强版”或“发行版”。

Tengine 的诞生背景与核心目标

淘宝网作为中国顶级的电商网站,面临着巨大的流量和复杂的业务场景。虽然 Nginx 本身非常优秀,但在应对淘宝这种超大规模网站的特定需求时,原版 Nginx 存在一些局限性。因此,淘宝的核心工程师团队决定在 Nginx 的基础上进行二次开发,Tengine 应运而生。它的核心目标是:
满足高并发、大流量的需求。
增强服务器的稳定性和易用性。
加入一些原版 Nginx 没有的、但对大型网站至关重要的高级功能。

Tengine 与 Nginx 的关系

完全兼容:Tengine 100% 兼容 Nginx 的配置语法和模块。这意味着所有在 Nginx 上能运行的配置文件和第三方模块,都可以在 Tengine 上无缝运行。
功能超集:Tengine 包含了 Nginx 的所有功能,并在此基础上增加了大量的增强功能和独创特性。你可以把它看作“Nginx Plus”的一个强大的开源替代品。
开源项目:和 Nginx 一样,Tengine 也是一个开源项目,目前在阿里巴巴的 GitHub 主页上维护。

Tengine 的主要特性与增强功能(相比原版 Nginx 的亮点)

以下是 Tengine 一些非常著名和实用的功能:
动态模块加载(DSO)
Nginx:要添加或移除模块,必须重新编译整个 Nginx 可执行文件。
Tengine:支持像 Apache 一样,在运行时动态加载模块(.so 文件),无需重新启动主服务,大大提高了维护的灵活性。

强大的并发连接数统计模块 (ngx_http_reqstat_module)
可以实时统计和监控诸如 QPS(每秒请求数)、响应时间、上游服务器状态、特定 URL 的访问量等关键指标,对于监控和故障排查极其有用。

动态 SSL 证书加载
无需重启服务,即可更新 SSL 证书,这对于拥有大量域名的网站(如 CDN 服务商)至关重要,可以保证服务不中断。

日志切割与回滚
Tengine 可以自动在凌晨切割日志文件,并允许你配置保留多少天的日志,无需依赖外部的 logrotate 工具。

组合式配置 (includes)
支持在配置文件中使用类似 C 语言的 #include 指令,将多个配置文件组合在一起,使配置管理更加清晰。

增强的负载均衡算法
除了 Nginx 原有的轮询、IP哈希等算法外,还增加了如一致性哈希等算法,可以在上游服务器(如 Memcached、Redis 集群)增减节点时,最小化缓存失效的影响。

请求合并 (ngx_http_concat_module)
类似于阿里云 CDN 的“合并回源”功能。对于大量小文件(如图标、CSS 精灵图),前端可以将多个文件的请求合并为一个,由 Tengine 在服务器端拆分并分别获取,最后一次性返回给浏览器,显著减少 HTTP 请求数量。
例如:http://example.com/??a.css,b.css

系统信息监控 (ngx_http_sysguard_module)
当服务器的负载或内存使用超过预设的阈值时,Tengine 可以自动返回一个自定义的错误页面(如 503),而不是继续处理请求导致服务器崩溃,起到了“熔断”保护的作用。

对 ARM 架构的更好支持
针对国产化芯片(如鲲鹏)等 ARM 服务器架构进行了优化和支持。

标签: nginx

移动端可扫我直达哦~

推荐阅读

thumbnail 2023-11-08

nginx下的301跳转与302跳转

301跳转or302跳转301跳转301代表这个定向是永久的,搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址。而302则向搜索引擎声明这是暂时的重定向,搜索引擎会以为新的网址只是暂时的,会抓取新的内容而保存旧的网址。30...

建站相关 nginx

thumbnail 2023-11-07

nginx网站301跳转与强制通过https访问

关于301重定向301跳转是一种永久性重定向,向搜索引擎和用户说明原URL地址已经永久性更改为新的URL地址,使得搜索引擎在收录网站时可以将原URL地址的权重转移到新的URL地址上,同时也能方便用户访问到正确的内容。小鸟数据沉浮史小鸟...

建站相关 nginx

thumbnail 2022-10-09

nginx让来访者跳转至https页面

配置服务器实现了Nginx的https访问,配置文件同时支持了80端口以及443端口的访问,详见博文《为nginx服务器开启https》,如果只希望用户通过https访问站点,我们还需要改动一下配置文件,在80端口的设置部分写入一条跳...

建站相关 nginx

thumbnail 2022-10-09

为nginx服务器开启https服务

随着支持https标准的站点越来越多,浏览器上对于非https站点的标记也似乎越来越醒目了。所以用LNMP重新搭建服务器系统之后,首先想到的就是启用https。为站点开启https,首先需要一套安全证书,博主的域名购买自阿里云,域名证...

建站相关 nginx

thumbnail 2022-09-30

nginx环境下的虚拟主机配置

Nginx是一个高性能的HTTP和反向代理web服务器,下图是一个安装于阿里云服务器上Nginx文件目录,其中两个蓝色的是文件夹,可用于存放外部的配置文件,Nginx的核心配置文件是“nginx.conf”,图中其正下方有另一个相似的...

建站相关 nginx

thumbnail 2022-09-29

nginx禁止来访者通过IP访问

Nginx的主配置文件是 nginx.conf ,在阿里云服务器中,它一般位于 /etc/nginx 目录之下,为了避免频繁改动主配置文件,笔者屏蔽掉了主配置文件中的监听80端口的部分(nginx对443端口的监听默认状态为被注释),...

建站相关 nginx

thumbnail 2022-09-28

为nginx开启gzip压缩

gzip最早由Jean-loup Gailly和Mark Adler创建,用于unix系统的文件压缩。我们在linux中经常会用到后缀为.gz的文件,它们就是gzip格式的。gzip格式已经成为Internet上使用非常普遍的一种数据...

建站相关 nginx