Tengine 入门实战(1)--简介及安装
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 #重启