Tengine 是淘宝网主导的一个 Web 服务器计划。该项目以 Nginx 为基础,根据高流量网站的要求,扩充了许多增强功能。Tengine 的性能和可靠性已在大型网站例如淘宝网、天猫商城等得到充分验证。它的核心宗旨是构建一个高效能、高稳定、高安全、高便捷的 Web 平台。
Tengine的源码可以获取,当前版本是Tengine 2.3.2,官网说明这个版本继承了Nginx 1.17.3版本的全部功能,同时也适配了Nginx的配置方式Tengine 制作了大量自主设计的功能单元,并且融合了众多杰出的外部组件,其源代码能够从 Tengine 的官方网站获取,下载指令如下:
mkdir -p /opt/data/source
cd /opt/data/source
使用下载工具获取位于特定网址的压缩文件云开·全站体育app登录,该文件存放于淘宝提供的tengine服务器上,文件名包含版本号2.3.2,并以tar.gz格式结尾
tar zxmf tengine-2.3.2.tar.gz
Tengine 在编译时比开源版 Nginx 增设了部分配置选项。这些增设的编译配置参数具体内容,参见下表说明。
编译配置参数默认编译状态参数说明
--without-procs
编译
不编译 Procs 模块
--without-http_ssl_module
编译
不编译 HTTP SSL 支持模块
不使用http代理状态监控模块
编译
不编译运行状态模块
移除基于哈希链表的缓存机制,取消对网络请求的间接处理功能
编译
不使用红黑树(RBTree)方式进行上游服务器的查找
--with-http_lua_module
不编译
编译 Lua 脚本模块
--with-stream_sni
不编译
编译 TCP 代理时基于 SSL 的 SNI 支持
--with-jemalloc
不编译
启用 jemalloc 内存管理
对于上表,有以下两点说明。
3、代码编译代码编译过程如下。
# 安装编译依赖
进行必要的软件安装,首先安装gcc编译器,接着安装pcre开发包,然后安装zlib开发包,紧接着安装openssl开发包,最后安装libxml2开发包,全部操作均采用默认确认方式执行,确保各项依赖正确配置,
安装包开发工具链,包括libxslt,gd,GeoIP,yajl,jemalloc等组件,这些都是为了构建软件系统而必需的依赖库和工具,能够提供丰富的功能支持,增强应用程序的性能和稳定性,同时简化开发过程kaiyun.ccm,提高开发效率。
安装原子操作库开发包,配置LuaJIT环境开yun体育app官网网页登录入口,同时设置LuaJIT开发组件,部署Perl开发工具集,并集成Perl扩展工具嵌入模块
# 执行编译配置
./configure
# 代码编译及安装
make & make install
安装 Lua 或 LuaJIT 都可以, LuaJIT 是 Lua 的一个性能更强的版本,更推荐安装 LuaJIT, 编译过程结束后, 默认的安装位置是 /usr/local/nginx。
Tengine 的内置组件存放于源代码目录下的 modules 子目录里,用户能够依据实际需求借助编译配置项 --add-module 来选用这些组件,具体模块的介绍请参照下表内容。
模块文件夹名模块说明
mod_dubbo
提供对与后端 Dubbo 服务体系对接的支持
ngx_backtrace_module
这个组件能帮助在作业进程非正常终止时,记录 Nginx 的错误堆栈信息,特别是在收到特定指令(像是 sigabr、sigbus、sigfpe、sigill、sigiot、sigsegv 这些信号)之后。它对于诊断问题相当有用
ngx_debug_pool
这个组件能够呈现 Nginx/Tengine 内存缓存块实际占用的数据量,并且可以显示其运作状况
ngx_debug_timer
这个组件能够呈现 Nginx/Tengine 时间管理工具的当前状况,同时也能显示其运行状况
ngx_http_concat_module
如同 Apache 的 mod_concat 组件,该功能旨在将多个文档整合,然后通过一个回复信息发送出去
ngx_http_footer_filter_module
在请求的响应末尾输出一段内容
ngx_http_lua_module
Lua 脚本集成模块
ngx_http_proxy_connect_module
提供对 HTTP 的 CONNECT 方法的支持
ngx_http_reqstat_module
监控模块
ngx_http_slice_module
文件切片模块
ngx_http_sysguard_module
这个部分负责追踪内存状况,包含 SWAP 空间,同时检测处理器活动,以及用户请求的处理时长,一旦某个观察到的数值超出预设的界限,系统便会转向一个特定的网址
ngx_http_tfs_module
这个组件完成了 TFS 的客户端功能,为 TFS 开发了 RESTful 接口。TFS 的全称即为 Taobao File System,是淘宝推出的一个开源分布式文件系统
ngx_http_trim_filter_module
这个部分的作用是移除网页代码中的注释内容,包括那些隐藏在脚本和样式表里的说明文字,同时也会清理掉那些不必要的空格字符,让文件变得更简洁
配置上游服务器检测模块
这个组件能够为 Tengine 实现自动化的后端服务器状态监控机制
Nginx上游一致性哈希模块
该模块提供一致性 hash 作为负载均衡算法
Nginx动态上游模块
这个组件能够实时地分析上游里 Server 名称,并且可以随时变动
Nginx上游动态代理模块
upstream 动态修改模块
配置项用于实现会话保持功能
这个组件属于分配任务类型,借助标识符来维系用户与后台机器间的连接状态,特定条件下能让某个用户持续与同一台后台机器进行交互
Nginx上游虚拟服务器轮询模块
这个模块是一种快速的压力分配方法,与 Nginx 官方推出的带权循环调用方法 SWRR 相比,VNSWRR 拥有稳定、分布均匀和运作卓越的特点
ngx_http_user_agent_module
这个组件能够解析 HTTP 数据包首部信息里“User-Agent”这个字段所包含的信息
ngx_multi_upstream_module
Dubbo 服务的多路复用连接支持模块
ngx_slab_stat
这个组件能够呈现 Nginx/Tengine 内存共享的状况详情
这个模块的功能解释依据的是源代码里的相关文档,详细操作步骤可以参考源代码中的相关文档。
Tengine 安装结束之后,可以通过 nginx -m 指令来列出所有当前已启用的扩展,静态链接的组件会标记为静态,动态链接的组件则会标记为动态。

