[转帖]Tengine编译安装

tengine,编译,安装 · 浏览次数 : 0

小编点评

**Tengine 代码获取和编译** 1. 下载 Tengine 2.3.2 版本的源代码。 2. 使用 `mkdir -p /opt/data/sourcecd /opt/data/sourcewget` 命令下载代码。 3. 在 `configure` 文件中配置编译参数,例如编译库和模块。 4. 使用 `make` 命令编译代码。 5. 默认安装目录为 `/usr/local/nginx`。 **Tengine 集成的模块** Tengine 自带许多模块,用户可通过 `--add-module`参数指定安装。这些模块包含以下功能: * **mod_dubbo:** 对与后端 Dubbo 服务体系对接的支持。 * **ngx_debug_pool:** 提供 Nginx/Tengine 内存池占用内存的状态信息。 * **ngx_debug_timer:** 提供 Nginx/Tengine 定时器的状态信息。 * **ngx_http_concat_module:** 用于将多个文件合并在一个响应报文中。 * **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:** 监控内存、CPU 和请求的响应时间。 * **ngx_http_upstream_check_module:** 为 Tengine 提供主动式后端服务器健康检查功能。 * **ngx_http_upstream_consistent_hash_module:** 提供一致性 hash 作为负载均衡算法。 * **ngx_http_upstream_dynamic_module:** 可在运行时动态解析 upstream 中 Server 域名。 * **ngx_http_upstream_session_sticky_module:** 通过 cookie 实现客户端与后端服务器的会话保持。 * **ngx_http_upstream_vnswrr_module:** 支持 VNSWRR 算法。 * **ngx_http_user_agent_module:** 分析 HTTP 消息头属性字段“User-Agent”中的内容。 * **ngx_multi_upstream_module:** 支持多路复用连接。 * **ngx_slab_stat:** 提供 Nginx/Tengine 共享内存的状态信息。 **其他信息** * Tengine 编译完成后,可以使用 `nginx -m` 命令查看已加载的模块。 * 模块功能说明来源于代码中的说明文档。

正文

https://www.cnblogs.com/lizexiong/p/15012824.html

 

  Tengine 是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine 的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

 

1.Tengine源码获取

  Tengine 使用 Tengine 2.3.2演示,据其官网介绍,该版本继承了 Nginx 1.17.3 版本的所有特性,并兼容了 Nginx 的配置参数。Tengine 开发了很多自有模块,同时也集成了很多优秀的第三方模块,源代码可以通过 Tengine 的官方网站获得,获取命令如下:

mkdir -p /opt/data/source
cd /opt/data/source
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
tar zxmf tengine-2.3.2.tar.gz

 

2.编译配置参数

  Tengine 比开源版 Nginx 增加了一些编译配置参数。Tengine 增加的编译配置参数如下表所示。

编译配置参数 默认编译状态 参数说明
--without-procs 编译 不编译 Procs 模块
--without-http_ssl_module 编译 不编译 HTTP SSL 支持模块
--without-http_stub_status_module 编译 不编译运行状态模块
--without-http-upstream-rbtree 编译 不使用红黑树(RBTree)方式进行上游服务器的查找
--with-http_lua_module 不编译 编译 Lua 脚本模块
--with-stream_sni 不编译 编译 TCP 代理时基于 SSL 的 SNI 支持
--with-jemalloc 不编译 启用 jemalloc 内存管理

  对于上表,有以下两点说明。

    • jemalloc 是 Facebook 开源的一个内存管理分配器;
    • Nginx 原有编译配置参数参见《Nginx源码编译安装》一节。

 

3.代码编译

  代码编译过程如下。

复制代码
# 安装编译依赖
yum -y install gcc pcre-devel  zlib-devel openssl-devel libxml2-devel \
    libxslt-devel gd-devel GeoIP-devel yajl-devel jemalloc-devel \
    libatomic_ops-devel luajit luajit-devel perl-devel perl-ExtUtils-Embed

# 执行编译配置
./configure

# 代码编译及安装
make & make install
复制代码

  安装 Lua 或 LuaJIT 都可以,LuaJIT 是 Lua 的高效版本,推荐安装 LuaJIT。编译完成后,默认安装目录为 /usr/local/nginx。

 

4.Tengine 集成的模块

  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 分区)、CPU 和请求的响应时间,当某些监控指标达到设定的阈值时,跳转到指定的 URL
ngx_http_tfs_module 该模块实现了 TFS 的客户端,为 TFS 提供了 RESTful API。TFS 的全称是 Taobao File System,是淘宝的一个开源分布式文件系统
ngx_http_trim_filter_module 该模块用于删除 HTML、内嵌在 JavaScript 和 CSS 中的注释以及重复的空白符
ngx_http_upstream_check_module 该模块可以为 Tengine 提供主动式后端服务器健康检查功能
ngx_http_upstream_consistent_hash_module 该模块提供一致性 hash 作为负载均衡算法
ngx_http_upstream_dynamic_module 此模块可在运行时动态解析 upstream 中 Server 域名
ngx_http_upstream_dyups_module upstream 动态修改模块
ngx_http_upstream_session_sticky_module 该模块是一个负载均衡模块,通过 cookie 实现客户端与后端服务器的会话保持,在一定条件下可以保证同一个客户端访问的是同一个后端服务器
ngx_http_upstream_vnswrr_module 该模块是一个高效的负载均衡算法,同 Nginx 官方的加权轮询算法 SWRR 相比,VNSWRR 具备平滑、散列和高性能特征
ngx_http_user_agent_module 该模块可以分析 HTTP 消息头属性字段“User-Agent”中的内容
ngx_multi_upstream_module Dubbo 服务的多路复用连接支持模块
ngx_slab_stat 该模块可以提供 Nginx/Tengine 共享内存的状态信息

  上述模块功能说明来源于源码中的说明文档,具体使用方法可参照源码中的说明文档。

  Tengine 编译完成后,可使用nginx -m命令查看所有已经加载的模块,static 标识是静态编译的,shared 标识是动态编译的。

与[转帖]Tengine编译安装相似的内容:

[转帖]Tengine编译安装

https://www.cnblogs.com/lizexiong/p/15012824.html Tengine 是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine 的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得

[转帖]解决Nginx负载均衡重复提交问题

https://www.qiansw.com/resolving-nginx-load-balancing-repeated-commit-problems.html 这篇文章的发布时间较早,其中的信息可能已经过时,阅读时请注意甄别。 Nginx [测试环境 Tengine version: Ten

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打

[转帖]awk 中 FS的用法

https://www.cnblogs.com/rohens-hbg/p/5510890.html 在openwrt文件 ar71xx.sh中 查询设备类型时,有这么一句, machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /