Tengine 入门实战(1)--简介及安装

发布时间 2023-05-28 10:01:27作者: 且行且码

1、简介

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

Tengine 特性:

  • 继承 Nginx-1.18.0 的所有特性,兼容 Nginx 的配置;
  • 支持 HTTP 的 CONNECT 方法,可用于正向代理场景;
  • 支持异步 OpenSSL,可使用硬件如:QAT 进行 HTTPS 的加速与卸载;
  • 增强相关运维、监控能力,比如异步打印日志及回滚,本地 DNS 缓存,内存监控等;
  • Stream 模块支持 server_name 指令;
  • 更加强大的负载均衡能力,包括一致性 hash 模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析 upstream 中出现的域名;
  • 输入过滤器机制支持。通过使用这种机制 Web 应用防火墙的编写更为方便;
  • 支持设置 proxy、memcached、fastcgi、scgi、uwsgi 在后端失败时的重试次数;
  • 动态脚本语言 Lua 支持。扩展功能非常高效简单;
  • 支持按指定关键字(域名,url等)收集 Tengine 运行状态;
  • 组合多个 CSS、JavaScript 文件的访问请求变成一个请求;
  • 自动去除空白字符和注释从而减小页面的体积
  • 自动根据 CPU 数目设置进程个数和绑定 CPU 亲缘性;
  • 监控系统的负载和资源占用从而对系统进行保护;
  • 显示对运维人员更友好的出错信息,便于定位出错机器;;
  • 更强大的防攻击(访问速度限制)模块;
  • 更方便的命令行参数,如列出编译的模块列表、支持的指令等;
  • 支持 Dubbo 协议;
  • 可以根据访问文件类型设置过期时间;

Tengine 的最新版本为 2.3.3(基于 Nginx 1.8.0),发布日期为 2021-03-25,版本更新比较慢。

2、安装

Tengine 的安装与 Nginx 基本一致,这里所使用到的软件版本:tengine 2.3.3、pcre 8.43、opnessl 1.1.1s、zlib 1.2.11、CentOS 7.9.2009

2.1、下载源码

tengine 源码:http://tengine.taobao.org/download_cn.html
pcre 源码:http://www.pcre.org/
openssl 源码:https://www.openssl.org/source/
zlib 源码:http://www.zlib.net/

下载后解压:

tar zxvf tengine-2.3.3.tar.gz
unzip pcre-8.43.zip
tar zxvf openssl-1.1.1s.tar.gz
tar zxvf zlib-1.2.11.tar.gz

2.2、编译安装

cd tengine-2.3.3
./configure --prefix=/home/mongo/soft/tengine-2.3.3 --with-pcre=/home/mongo/installfile/pcre-8.43 --with-http_stub_status_module --with-http_ssl_module --with-openssl=/home/mongo/installfile/openssl-1.1.1s --with-zlib=/home/mongo/installfile/zlib-1.2.11 --with-mail --with-stream --add-module=modules/ngx_http_upstream_check_module
make
make install

--add-module=modules/ngx_http_upstream_check_module 表示添加 Tengine 扩展的主动式后端服务器健康检查模块,其他参数说明可参考:Nginx 入门实战(1)--简介及安装

2.3、启动

Tengine 同 Nginx 一样默认配置了一个端口为 80 Http 服务器,使用普通用户启动需要修改该端口;编辑 conf/nginx.conf 文件:

http {
    include       mime.types;
    default_type  application/octet-stream;
    ...
    server {
        listen       8080;
        ...

执行启动命令:

sbin/nginx

启动后访问 8080 端口:

2.4、停止及重启

sbin/nginx -s stop #停止
sbin/nginx -s reload #重启

 

 

参考:http://tengine.taobao.org/