Nginx 外的另一选择,轻量级开源 Web 服务器 Tengine 发布新版本

简介: 新版发布近日,轻量级开源 Web 服务器 Tengine 发布了2.3.0版本,新增如下特性:ngx_http_proxy_connect_module [1] ,该模块让 Tengine 可以用于正向代理场景,支持对 CONNECT 方法请求的处理;HTTP2 Server粒度控制[...

tengine

新版发布

近日,轻量级开源 Web 服务器 Tengine 发布了2.3.0版本,新增如下特性:

  1. ngx_http_proxy_connect_module [1] ,该模块让 Tengine 可以用于正向代理场景,支持对 CONNECT 方法请求的处理;
  2. HTTP2 Server粒度控制[2] 新增 HTTP2指令,可针对 listen 相同端口的 server 进行个性化开启与关闭 HTTP2;
  1. Stream模块支持 server_name[3] 指令,可在 SSL 场景下,基于 SNI 识别出域名,让四层SSL 转发支持特定的 server 块配置;
  1. 加强 limit_req 模块[4] 功能,可以基于请求粒度动态设置限速大小,更多详细变更日志请参考[5];

注意事项

需要注意的是,本次 Tengine 升级 core 代码至 Nginx 官方的1.15.9版本(2019年2月26日发布),由于 Tengine 的部分功能 Nginx 官方已经实现,所以 Tengine 2.3.0 弃用了自身实现的部分配置指令,由此带来的不兼容性,列举如下:

  1. 废弃 Tengine 自身实现的 reuse_port 指令,使用 Nginx官方 的reuseport。

升级方法:将events 配置块里面的 reuse_port on|off 注释掉,在对应的监听端口后面加 reuseport 参数,详细的操作文档,请参考[5] 。

  1. 废弃 Tengine 的 dso_tool 工具以及 dso 配置指令。

若之前有使用 Tengine 的 dso 功能,则可以切换到 Nginx官方 的 load_module 指令,详细操作文档,请参考[6]和[7] 。

  1. 移除 Tengine 加强版 slice 模块到 modules,默认使用 Nginx 官方的 slice 功能。

如果依然需要使用 Tengine 的 slice,那么编译slice时请使用--add-module=modules/ngx_http_slice_module,否则使用 --with-http_slice_module 编译参数;

  1. Tengine 自身实现的模块,已全部剥离到 modules 目录下。

如果需要使用那个模块,请使用 --add-module=modules/ 的方式进行编译。

  1. limit_req 的请求计数逻辑和官方保持一致,去除 limit_req_zone 中任何一个变量值为空,跳过请求计数的逻辑。

关于 Tengine

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

自开源以来,Tengine 已获得来自67位 contributors 的1390个 commits,他们分别来自淘宝、搜狗,美团、Nginx 等企业。

据不完全统计,目前已有 200多家企业在通过 Tengine 来实现 Web 服务、负载均衡、代理服务、防攻击和访问限制等功能,包括傲世堂、小米网、聚美优品、河狸家、旺旺集团、杭州思华、中国博客联盟、SuperID、联想网盘、华兴资本、猿题库、蓝奏网盘、HoukeYun、云智慧等。

目前,Tengine 正通过 Ingress Controller 和 K8s 打通,这让 Tengine 具备了动态感知某个服务整个生命周期的能力。未来,Tengine 将定期开源内部通用组件功能模块,并同步 Nginx 官方的最新代码,丰富开发者们的开源 Web 服务器选项。

本文作者:
王发康(花名:毅松)
GitHub ID @wangfakang ,Tengine 开源项目 maintainer,阿里巴巴技术专家,负责阿里巴巴WEB统一接入层的开发及维护。

tengine_
Tengine 开源交流钉群

文中链接:

[1] ngx_http_proxy_connect_module
http://tengine.taobao.org/document_cn/proxy_connect_cn.html

[2] HTTP2 Server粒度控制
http://tengine.taobao.org/document_cn/http_core_cn.html

[3] server_name
http://tengine.taobao.org/document_cn/stream_sni_cn.html

[4] limit_req 模块
http://tengine.taobao.org/document_cn/http_core_cn.html

[5] limit_req 变更日志
http://tengine.taobao.org/changelog_cn.html#2_3_0

[6] Nginx 官方文档1
https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/

[7] Nginx 官方文档2
http://nginx.org/en/docs/ngx_core_module.html#load_module

[8] Nginx 官方文档3
https://www.nginx.com/resources/wiki/extending/converting/#compiling-dynamic

相关文章
|
人工智能 API 开发者
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
5965 113
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
|
8月前
|
弹性计算 运维 安全
轻量级应用服务器和云服务器区别——阿里云轻量和ECS区别对比
阿里云轻量应用服务器与ECS云服务器对比:轻量适合个人开发者、学生搭建博客、测试环境,门槛低、操作简便、成本低;ECS适用于企业级高并发场景,功能全面、弹性强。二者在使用场景、性能、网络、镜像及运维管理等方面差异显著,用户应根据实际需求选择。
748 4
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
2247 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
存储 人工智能 项目管理
2025年GitHub平台上的十大开源MCP服务器汇总分析
本文深入解析了GitHub上十个代表性MCP(Model Context Protocol)服务器项目,探讨其在连接AI与现实世界中的关键作用。这些服务器实现了AI模型与应用程序、数据库、云存储、项目管理等工具的无缝交互,扩展了AI的应用边界。文中涵盖Airbnb、Supabase、AWS-S3、Kubernetes等领域的MCP实现方案,展示了AI在旅行规划、数据处理、云存储、容器编排等场景中的深度应用。未来,MCP技术将向标准化、安全性及行业定制化方向发展,为AI系统集成提供更强大的支持。
2855 2
2025年GitHub平台上的十大开源MCP服务器汇总分析
|
JavaScript 前端开发 数据可视化
20.6K star!Excel级交互体验!这款开源Web表格神器绝了!
Handsontable 是一款功能强大的 JavaScript 数据表格组件,提供类 Excel 的交互体验。支持实时协作、数据绑定、公式计算等企业级功能,可轻松集成到 React/Vue/Angular 等主流框架。
2657 11
|
运维 网络安全 文件存储
找不到类似 Docker Desktop 的 Web 管理界面?试试这些开源方案
Docker Desktop 是本地容器化开发的利器,但存在无法通过 Web 远程管理、跨平台体验不一致等问题。为此,推荐几款轻量级、可 Web 化管理的 Docker 工具:Portainer 功能全面,适合企业级运维;CasaOS 集成应用商店和 NAS 功能,适合家庭/个人开发环境;Websoft9 提供预集成环境,新手友好。这些工具能有效提升容器管理效率,满足不同场景需求。
1104 3
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
1046 87

热门文章

最新文章