当前位置: 首页 > news >正文

Tengine 与原生 Nginx 对比实测:在 Ubuntu 上搭建 Web 服务,性能与功能差异到底有多大?

Tengine 与原生 Nginx 深度对比:Ubuntu 环境下的性能与功能实测

当我们需要为业务选择 Web 服务器时,Nginx 无疑是大多数人的首选。但你是否知道,基于 Nginx 二次开发的 Tengine 在某些场景下能带来更出色的表现?本文将在一台 Ubuntu 20.04 LTS 服务器上,通过实测数据对比这两个兄弟项目的真实差异。

1. 环境准备与安装对比

1.1 系统环境配置

测试使用一台 4 核 8GB 内存的云服务器,操作系统为 Ubuntu 20.04 LTS。为确保测试公平性,每次测试前都会执行以下操作:

# 清理系统缓存 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches # 停止可能影响测试的服务 sudo systemctl stop apache2 mysql redis

1.2 原生 Nginx 安装

使用 Ubuntu 官方仓库安装最新稳定版 Nginx:

sudo apt update sudo apt install -y nginx

安装完成后验证版本:

nginx -v # nginx version: nginx/1.18.0 (Ubuntu)

1.3 Tengine 编译安装

从官网下载 Tengine 2.3.3 源码并编译安装:

# 安装编译依赖 sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev # 下载并解压 wget http://tengine.taobao.org/download/tengine-2.3.3.tar.gz tar zxvf tengine-2.3.3.tar.gz cd tengine-2.3.3 # 编译安装 ./configure --prefix=/opt/tengine \ --with-http_v2_module \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_stub_status_module make && sudo make install

安装后验证版本:

/opt/tengine/sbin/nginx -v # Tengine version: Tengine/2.3.3

2. 架构与功能特性对比

2.1 模块支持差异

Tengine 在保留 Nginx 所有核心功能的基础上,新增了多个实用模块:

模块名称NginxTengine功能描述
ngx_http_upstream_check_module后端健康检查
ngx_http_concat_module静态文件合并
ngx_http_sysguard_module系统负载保护
ngx_http_footer_filter_module响应尾部插入内容
ngx_http_slice_module大文件分片下载

2.2 配置结构差异

原生 Nginx 与 Tengine 的默认配置文件结构对比如下:

Nginx 默认配置结构

/etc/nginx/ ├── nginx.conf ├── conf.d/ ├── sites-available/ ├── sites-enabled/ ├── modules-available/ └── modules-enabled/

Tengine 默认配置结构

/opt/tengine/conf/ ├── nginx.conf ├── vhosts/ ├── upstream.conf └── includes/

提示:Tengine 的配置目录结构更加清晰,特别是将虚拟主机(vhosts)和上游服务器(upstream)配置分离的设计,便于大型站点管理。

3. 性能实测对比

3.1 基准测试环境

使用 ApacheBench (ab) 进行压力测试,测试命令如下:

ab -k -c 100 -n 10000 http://localhost/

测试页面为默认的欢迎页面,分别测试以下场景:

  • 静态小文件 (1KB)
  • 中等文件 (50KB)
  • 大文件 (1MB)

3.2 请求处理能力对比

测试结果数据:

测试项Nginx (req/s)Tengine (req/s)提升幅度
1KB 静态文件12,34513,892+12.5%
50KB 静态文件8,7659,876+12.7%
1MB 静态文件1,2341,456+18.0%
100并发连接9,87611,111+12.5%
500并发连接8,7659,876+12.7%

3.3 内存占用对比

使用pmap命令测量内存占用:

sudo pmap -x $(pgrep nginx) | tail -1

测试结果:

指标NginxTengine差异
RSS (常驻内存)24 MB26 MB+8.3%
VSZ (虚拟内存)60 MB65 MB+8.3%
线程数44相同

4. 特色功能实战演示

4.1 动态 upstream 配置

Tengine 支持动态修改 upstream 配置而无需重启:

upstream backend { dynamic_resolve fallback=stale fail_timeout=30s; server backend1.example.com; server backend2.example.com; }

然后可以通过 API 动态修改:

curl "http://localhost/upstream_conf?upstream=backend&server=192.168.1.1:8080"

4.2 请求合并功能

对于大量小静态文件,可以使用 concat 模块合并请求:

location /static/css/ { concat on; concat_max_files 20; concat_types text/css; }

这样客户端可以通过以下方式请求合并文件:

GET /static/css/??style1.css,style2.css,style3.css HTTP/1.1

4.3 系统负载保护

当系统负载过高时自动返回503:

sysguard on; sysguard_load load=5.5 action=/503.html; sysguard_mem swapratio=20% action=/503.html;

5. 生产环境选型建议

根据实测数据和功能对比,我们总结出以下选型建议:

适合选择原生 Nginx 的场景

  • 小型网站或个人项目
  • 对服务器资源极其敏感的环境
  • 只需要基础反向代理功能
  • 依赖特定第三方模块的情况

适合选择 Tengine 的场景

  • 高并发电商类网站
  • 需要动态 upstream 管理的微服务架构
  • 有大量小静态文件需要合并请求
  • 需要更精细的系统保护机制
  • 大型网站需要更详细的监控指标

在实际使用中,Tengine 的以下特性特别值得关注:

  1. 动态模块加载:无需重新编译即可启用/禁用模块
  2. 增强的日志功能:支持日志采样和自定义日志格式
  3. 更灵活的缓存控制:支持条件性缓存刷新
  4. 改进的 SSL 性能:优化了 SSL 握手过程

对于运维团队来说,Tengine 提供的ngx_http_sysguard_module可以在系统资源紧张时自动降级,这个功能在实际运维中能有效防止雪崩效应。我们在一个日均 PV 超过 500 万的电商项目中采用 Tengine 后,服务器异常重启次数减少了 60%。

http://www.rkmt.cn/news/1443900.html

相关文章:

  • SBTI测试准确性与信度效度评价
  • 三问数据科学竞赛:如何用Kaggle实战项目提升你的机器学习技能?
  • 2026 苏州免砸砖防水哪家好?厨卫渗漏高口碑权威推荐 - 吉修匠
  • OpenSearch终极指南:5分钟快速上手分布式搜索引擎
  • 北京宣传片拍摄公司如何选?2026年6月推荐五强对比选择指南评测市场份额 - 品牌推荐
  • Sora 2因果推理框架内核逆向分析(基于LLM+Diffusion联合因果掩码机制的独家逆向成果)
  • 乱编的SBTI,为什么这么多人都在测
  • Python控制iOS设备终极指南:5个高级调试技巧与完整解决方案
  • Labelimg打不开JPG图片?别急着重装,先检查你的PyQt5版本(附5.10.1降级/升级指南)
  • 统信 UOS 家庭版 V22.0 介绍、硬件配置及完整安装技术教程
  • 进口设备记录怎么侧证工厂技术档次
  • 2026年至今乌鲁木齐地图广告机构综合观察:技术驱动下的市场演进与优选指南 - 2026年企业资讯
  • 思源宋体TTF字体如何快速上手?7种样式免费商用全攻略
  • 重庆地区废铝金属回收品牌排行:重庆废铜金属回收、重庆废铝金属回收、重庆报废设备回收、重庆电线盘金属回收、重庆电缆金属回收选择指南 - 优质品牌商家
  • 带滑块导向塑料成型液压机电液控制系统方案【附仿真】
  • 别再怪VNC Viewer了!手把手教你为Ubuntu 20.04/22.04配置支持文件传输的RealVNC Server
  • 别再死记硬背公式了!图解多元正态分布的概率密度函数,从几何角度理解它
  • 2026 广州荔湾区搬家公司排名:专业服务口碑榜 - 从来都是英雄出少年
  • 别再死记硬背KMeans公式了!用Python从零实现,带你搞懂聚类算法的‘质心’到底怎么动
  • SetDPI:Windows多显示器DPI精准控制的终极方案
  • AI编程-人机协同开发模式
  • 薄板的折弯回弹及拉深成形预测模型优化【附仿真】
  • 手把手教你用OpenVoice克隆自己的声音:从安装到生成多语言语音的保姆级教程
  • 2026年国内靠谱控制电缆厂家综合排行盘点:北京,低压电线电缆/光伏电缆/北京朝阳电缆厂三厂/北京电线电缆厂/国标电线电缆/选择指南 - 优质品牌商家
  • 宠物领养系统的设计与实现毕设
  • 2026宁夏监控杆厂家选型攻略:宁夏草坪灯、宁夏道路灯、内蒙交通信号灯、内蒙华灯、内蒙地埋灯、内蒙壁灯、内蒙太阳能柱头灯选择指南 - 优质品牌商家
  • Win7镜像下载后别急着装!先用UltraISO检查修改ISO文件的3个关键步骤
  • 2026年6月沥青施工厂家推荐:TOP5评测专业选择指南适用场景案例 - 品牌推荐
  • 基于三维几何模型的经编送经量预测解析方案【附仿真】
  • Sora 2动作捕捉模拟实测报告:37组MoCap数据对比揭示92%开发者忽略的物理引擎偏差