Tengine 本身是一个 Nginx 的分支,它的命令行工具与 Nginx 高度兼容,甚至可以直接使用 nginx 命令,Tengine 在 Nginx 的基础上增加了许多自己的功能和模块,因此也提供了一些自己特有的命令。

我们将命令分为以下几类:
- 核心管理与控制命令 (与 Nginx 兼容)
- Tengine 特有命令
- 配置文件检查与测试命令 (与 Nginx 兼容)
- 查看状态与日志命令 (与 Nginx 兼容)
- 升级与回滚命令 (Tengine 特有优势)
核心管理与控制命令
这些是用于启动、停止、平滑重启 Tengine 服务器的核心命令,通常需要 root 权限执行。
tengine / nginx
-
作用: 启动 Tengine。
-
语法:
tengine [-c config_file]
(图片来源网络,侵删) -
示例:
# 使用默认配置文件 (通常是 /usr/local/nginx/conf/nginx.conf 或 /etc/nginx/nginx.conf) 启动 sudo tengine # 指定配置文件启动 sudo tengine -c /path/to/your/custom/nginx.conf
-
注意: Tengine 是通过
apt或yum安装的,通常会有一个systemd服务(如tengine.service),你应该使用systemctl来管理服务,而不是直接调用tengine命令。
tengine -s stop
- 作用: 快速停止 Tengine 进程,它会立即终止所有 worker 进程,可能导致正在处理的请求被中断。
- 语法:
tengine -s stop - 示例:
sudo tengine -s stop
tengine -s quit
- 作用: 优雅停止 Tengine 进程,master 进程会收到信号,然后通知所有 worker 进程在处理完当前所有请求后退出,这是生产环境中最常用的停止方式。
- 语法:
tengine -s quit - 示例:
sudo tengine -s quit
tengine -s reload
- 作用: 平滑重启 (或称为“重载配置”),这是最常用的维护命令,master 进程会检查新配置文件的语法是否正确,如果正确,它会启动一个新的 worker 进程来处理新请求,然后逐步关闭旧的 worker 进程,整个过程服务不中断。
- 语法:
tengine -s reload - 示例:
# 修改完配置文件后,执行此命令使新配置生效 sudo tengine -s reload
tengine -s reopen
- 作用: 重新打开日志文件,当你需要轮转日志文件(用
mv命令将access.log重命名为access.log.1)时,这个命令会让 Tengine 关闭旧的日志文件句柄,并打开新的日志文件,而无需重启服务。 - 语法:
tengine -s reopen - 示例:
# 1. 轮转日志文件 sudo mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.1 # 2. 让 Tengine 打开新的 access.log sudo tengine -s reopen
Tengine 特有命令
Tengine 增加了一些非常有用的命令,这些是标准 Nginx 所不具备的。
tengine -V
- 作用: 显示 Tengine 的版本号以及编译时使用的模块和参数,这个命令非常关键,用于确认 Tengine 是否包含你需要的特定模块(如
ngx_http_concat_module)。 - 语法:
tengine -V - 示例:
tengine -V
- 输出示例:
Tengine version: Tengine/2.3.3 nginx version: nginx/1.18.0 built by gcc 4.8.5 20250623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2025 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx ... # ... 这里会列出所有编译进去的模块 ...注意看输出中是否有你需要的模块,
--with-http_concat_module。
(图片来源网络,侵删)
tengine -t
- 作用: 测试配置文件语法,这是运维人员最常用的命令之一,用于在重载配置前检查配置文件是否有语法错误。
- 语法:
tengine -t - 示例:
tengine -t
- 成功输出:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful - 失败输出:
nginx: [emerg] "server" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:50 nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed这会告诉你哪一行有语法错误。
配置文件检查与测试命令
这些命令主要用于调试,在生产环境中不常用。
tengine -T config_file
- 作用: 详细测试配置文件,它会尝试解析配置文件,并输出每个模块的配置详情,非常有助于调试复杂的配置问题。
- 语法:
tengine -T config_file - 示例:
tengine -T /usr/local/nginx/conf/nginx.conf
tengine -q
- 作用: 在测试配置文件时,只输出错误信息,忽略成功信息,适合用在脚本中,只关心是否有错误。
- 语法:
tengine -q -t - 示例:
tengine -q -t
如果有错误,会打印出来;如果没有错误,则没有任何输出。
查看状态与日志命令
ps aux | grep tengine
- 作用: 查看当前正在运行的 Tengine 进程,你会看到一个 master 进程和多个 worker 进程。
- 示例:
ps aux | grep tengine
- 输出:
root 12345 0.0 0.0 46608 1124 ? Ss 10:00 0:00 tengine: master process tengine nobody 12347 0.0 0.1 49288 5324 ? Sl 10:00 0:00 tengine: worker process nobody 12348 0.0 0.1 49288 5324 ? Sl 10:00 0:00 tengine: worker process
tail -f /path/to/access.log
- 作用: 实时查看访问日志,用于监控网站的实时访问情况。
- 示例:
tail -f /usr/local/nginx/logs/access.log
tail -f /path/to/error.log
- 作用: 实时查看错误日志,用于排查问题。
- 示例:
tail -f /usr/local/nginx/logs/error.log
升级与回滚命令
这是 Tengine 的一个亮点功能,可以实现 Tengine 的平滑升级和回滚,而不会中断服务。
tengine -t
- 作用: 在升级前,必须先测试新版本的配置文件,确保语法正确。
- 示例:
# 假设新版本的二进制文件是 tengine.new ./tengine.new -t
tengine -s upgrade
- 作用: 平滑升级,它会启动新的 master 进程(使用新二进制文件),新的 master 进程会接管旧的 worker 进程,旧进程会在处理完所有请求后自动退出。
- 步骤:
- 将新版本的 Tengine 二进制文件(
tengine.new)放到服务器的某个目录,并赋予执行权限。 - 将旧二进制文件(
tengine)重命名备份(tengine.old)。 - 将新二进制文件重命名为
tengine。 - 执行升级命令。
- 将新版本的 Tengine 二进制文件(
- 示例:
# 1. 备份旧二进制 sudo mv /usr/local/nginx/sbin/tengine /usr/local/nginx/sbin/tengine.old # 2. 放入新二进制并重命名 sudo mv /path/to/tengine.new /usr/local/nginx/sbin/tengine sudo chmod +x /usr/local/nginx/sbin/tengine # 3. 执行平滑升级 sudo /usr/local/nginx/sbin/tengine -s upgrade
tengine -s stop
- 作用: 在升级失败后,使用此命令停止新的 master 进程,从而回滚到旧版本。
- 示例:
# 如果升级后发现新版本有问题,可以停止新进程 sudo /usr/local/nginx/sbin/tengine -s stop
执行后,旧版本的进程可能还在运行,或者你可以手动恢复旧二进制文件并重启。
总结与最佳实践
| 命令 | 作用 | 场景 | 备注 |
|---|---|---|---|
tengine -V |
查看版本和编译参数 | 安装后确认模块支持 | 非常重要 |
tengine -t |
测试配置文件语法 | 修改配置后,重载前 | 必用,防止服务中断 |
tengine -s reload |
平滑重载配置 | 日常运维,更新配置 | 最常用的服务不中断更新 |
tengine -s quit |
优雅停止服务 | 关机或维护前 | 比 stop 更安全 |
tengine -s reopen |
重新打开日志文件 | 日志轮转 | 配合 logrotate 使用 |
tengine -s upgrade |
平滑升级版本 | 版本更新 | Tengine 特有功能,非常强大 |
最佳实践流程:
- 修改配置文件 (
vim nginx.conf)。 - 测试语法 (
tengine -t)。 - 如果语法正确,平滑重载 (
tengine -s reload)。 - 如果语法错误,根据提示修改,然后重复步骤 2 和 3。
