news 2026/8/12 15:30:53

tengine知识点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
tengine知识点
第一步:准备“施工工具”(安装依赖)

编译源码需要用到 C 语言编译器和一些基础库。在 Linux 终端输入以下命令:

yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
第二步:下载并解压源码

去 Tengine 官网下载源码包,然后解压。老师这里以 3.1.0 版本为例:

wget http://tengine.taobao.org/download/tengine-3.1.0.tar.gz tar -zxvf tengine-3.1.0.tar.gz cd tengine-3.1.0
第三步:配置、编译与安装(核心!)

这是最关键的一步,我们只需要执行三个命令:

  1. 配置(检查环境,准备编译):

    ./configure
  2. 编译(把代码翻译成机器能懂的语言):

    make
  3. 安装(把编译好的文件放到系统目录里):

    make install

4.检查

cd /usr/local/nginx/sbin ./nginx -v 查看版本 ./nginx 启动 ./nginx -s stop 停止 ./nginx -t 语法检查 ./nginx -s relaod 重载配置

5.加入环境变量

#临时生效 export PATH=$PATH:/usr/local/nginx/sbin #永久生效 echo "export PATH=$PATH:/usr/local/nginx/sbin" >>/etc/profile source /etc/profile

===================================

Tengine 是阿里基于官方 Nginx 二次开发,100% 兼容 Nginx 所有配置、指令、模块,你写的 nginx.conf 直接丢给 Tengine 就能跑; 所有原生 Nginx 有的能力它全都保留

一、负载均衡系列(Tengine 最核心新增)

1. VNSWRR 平滑加权轮询(替代原生加权轮询)

原生 Nginx 加权轮询:权重差距大时流量扎堆; Tengine 默认 upstream 就是平滑加权,无需额外指令。

upstream web_server { server 192.168.1.10:8080 weight=3; server 192.168.1.11:8080 weight=1; # Tengine自动启用VNSWRR,流量均匀打散 } server { listen 80; location / { proxy_pass http://web_server; } }

2. 内置主动健康检查(原生 Nginx 无,必须第三方模块)

upstream web_server { server 192.168.1.10:8080 weight=3; server 192.168.1.11:8080 weight=1; # 开启主动健康探测 check interval=2000 rise=2 fall=3 timeout=1000 type=http; # 每隔2秒探测一次;连续2次成功标记上线;连续3次失败标记宕机;超时1秒 check_http_send "HEAD /health HTTP/1.1\r\nHost:localhost\r\nConnection:close\r\n\r\n"; # 访问后端健康接口 check_http_expect_alive http_2xx http_3xx; # 返回2xx/3xx判定节点正常 }

3. consistent_hash 一致性哈希(内置)

常用于图片缓存、会话绑定,按 URL 哈希

upstream cache_cluster { consistent_hash $request_uri; # 根据请求地址哈希 server 192.168.2.10:80; server 192.168.2.11:80; server 192.168.2.12:80; }

4. session_sticky Cookie 会话保持(优于 ip_hash)

解决公司内网所有人同一个 IP 挤一台服务的问题

upstream app { session_sticky; # 下发cookie绑定后端节点 server 192.168.3.10:8080; server 192.168.3.11:8080; }

5. dyups 后端域名动态解析

原生 Nginx upstream 域名只启动时解析一次;Tengine 自动定时刷新 DNS

upstream api { server api.service.com:8080; # 填写域名 dyups; # 开启动态域名解析 }

二、系统 & 并发性能优化配置

1. reuseport 多核端口复用优化(强化版)

events { worker_connections 10240; reuse_port on; # Tengine深度优化,多核并发暴涨 }

2. sysguard 系统过载保护(原生 Nginx 没有)

服务器内存 / CPU 过高时拒绝新连接,防止被 OOM 杀死

sysguard on; # CPU持续超过85%触发保护 sysguard cpu_max 85; # 剩余内存小于512MB触发保护 sysguard mem_min 512M;

3. CPU 亲缘绑定(自动绑定 worker 到 CPU 核心)

worker_cpu_affinity auto;

三、静态资源加速:concat 资源合并

把多个 js/css 一次请求加载,减少 HTTP 次数

server { listen 80; server_name static.test.com; location ~* \.(js|css)$ { concat on; concat_max_files 10; # 最多合并10个文件 expires 7d; } }

访问示例:http://static.test.com/1.js,2.js,3.css网关自动合并文件返回。

trim 精简 HTML/JS 空白字符、注释

location ~* \.(html|js|css)$ { trim on; }

四、日志与运维监控

1. 异步日志(海量访问不阻塞进程)

http { # 开启异步日志 access_log /usr/local/tengine/logs/access.log main async; }

2. reqstat 内置实时流量监控

无需安装插件,直接访问查看 QPS、耗时、错误码

server { listen 8088; location /reqstat { reqstat; } }

浏览器访问http://ip:8088/reqstat查看全量流量统计

3. 自动生成 X-Request-ID 全链路追踪

http { reqid on; log_format main '$remote_addr [$time_local] "$request" $status $request_time $reqid'; }

日志会带上唯一请求 ID,传给后端服务方便排查链路故障。

五、SSL/HTTPS 异步优化

异步 SSL 握手,降低 HTTPS CPU 消耗

server { listen 443 ssl async; # async 异步SSL(Tengine新增) server_name www.test.com; ssl_certificate cert/test.pem; ssl_certificate_key cert/test.key; ssl_protocols TLSv1.2 TLSv1.3; }

六、限流增强(原生 limit_req 优化)

http { limit_req_zone $binary_remote_addr zone=rate:10m rate=100r/s; } server { location / { limit_req zone=rate burst=20 nodelay; proxy_pass http://backend; } }

七、Lua 简单脚本示例(预装 Lua,不用自行编译)

修改响应头、简单鉴权场景

location /lua_demo { content_by_lua ' ngx.header["Server"] = "Tengine"; ngx.say("hello tengine lua"); '; }

八、常用启停命令(和 Nginx 一致,多了模块查看)

tengine -t # 校验配置 tengine -s reload # 平滑重载 tengine -V # 查看版本+编译模块 tengine -m # Tengine特有:列出所有加载模块

九、Tengine-Ingress 云原生核心优势(文字说明无本地配置)

K8s 场景下: 修改路由、域名、证书、后端权重不需要 reload,配置热生效,长连接不会断开; 原生 Nginx Ingress 每次变更都要 reload,容易造成短暂连接中断。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/12 15:29:18

XSS靶场实战:从绕过技巧到防御思维的Web安全训练

1. 项目概述:为什么我们需要XSS靶场? 如果你刚接触Web安全,或者想检验一下自己的XSS(跨站脚本攻击)实战能力,那么“XSS Challenges”这类靶场就是你最好的训练场。我见过太多安全爱好者,理论背得…

作者头像 李华
网站建设 2026/8/12 15:22:33

AI编程工具实战:从效率提升到产品开发加速的工程闭环

最近在技术社区看到不少关于“AI 会不会取代程序员”的讨论,也看到 Meta CTO 关于“AI 省下的时间应投入开发产品”的观点,这让我思考良多。作为一名长期在一线写代码、做项目的开发者,我深切感受到,AI 工具(如 GitHub…

作者头像 李华
网站建设 2026/8/12 15:21:37

GetQzonehistory:一键备份你的QQ空间历史记忆,让青春永不褪色

GetQzonehistory:一键备份你的QQ空间历史记忆,让青春永不褪色 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心那些珍贵的QQ空间说说会随着时间流逝而消…

作者头像 李华
网站建设 2026/8/12 15:20:34

AgentScope框架深度解析:消息驱动架构与Tool Calling实战指南

1. 项目概述:为什么我们需要一个新的Agent框架?最近两年,AI Agent这个概念火得不行,几乎每个技术社区都在讨论。但说实话,很多开发者,包括我自己,在真正动手去构建一个能用的Agent时&#xff0c…

作者头像 李华
网站建设 2026/8/12 15:16:01

制造业成本核算怎么做?先理清BOM,再核算料、工、费

做制造业成本管理这么多年,我发现很多企业都有一个共同问题:成本每个月都在核算,但成本为什么变化,却很难真正解释清楚。每个部门都在关注成本,但大家看到的其实只是成本链路中的某一个环节。制造业成本不是财务人员月…

作者头像 李华