← Back
Nginx

安装 OpenResty — 全平台完整安装指南

  • 支持的平台
  • 快速开始(Ubuntu / Debian)
  • 各平台安装指南
  • ARM64 / Aarch64
  • Alpine Linux
  • macOS 与源码编译
  • 验证安装
  • 常见问题
  • 支持的平台
  • 快速开始(Ubuntu / Debian)
  • 各平台安装指南
  • ARM64 / Aarch64
  • Alpine Linux
  • macOS 与源码编译
  • 验证安装
  • 常见问题

在 Nginx/OpenResty 网关层实现 120 MB/s 的实时 JS/CSS/HTML 压缩

  • 约束改变,问题重开
  • 为什么这个问题比想象复杂
  • 朴素方案会在哪里出错
  • openresty-minifiers 如何解决这个问题
  • 五分钟接入:配置示例
  • 约束改变,问题重开
  • 为什么这个问题比想象复杂
  • 朴素方案会在哪里出错
  • openresty-minifiers 如何解决这个问题
  • 五分钟接入:配置示例

OpenResty XRay 是什么

  • 以“零侵入”重构生产环境性能分析
  • 将海量遥测数据转化为可执行的洞察
  • 适应弹性架构的无感观测能力
  • 赋能高可用架构的长期主义
  • 以“零侵入”重构生产环境性能分析
  • 将海量遥测数据转化为可执行的洞察
  • 适应弹性架构的无感观测能力
  • 赋能高可用架构的长期主义

一次无法重启的 Nginx 内存泄漏,我们是如何在生产环境把它抓出来的

  • 一次生产环境内存泄漏的完整解剖
  • 为什么这类问题几乎无解?
  • 从“靠运气”到“可预测”
  • 当性能问题超越“工具”范畴”
  • 一次生产环境内存泄漏的完整解剖
  • 为什么这类问题几乎无解?
  • 从“靠运气”到“可预测”
  • 当性能问题超越“工具”范畴”

Nginx 反向代理 QPS 暴跌 15 倍:upstream keepalive 缺失与 -O0 编译选项的根因定位

  • Nginx 反向代理慢 15 倍,日志却零报错
  • 火焰图暴露连接风暴:upstream keepalive 缺失
  • 剩下的 10% 差距:基线对比指向编译器
  • -O0 调试编译如何吃掉我们 10% 的性能
  • 15 倍 QPS 差异的工程性复盘
  • Nginx 反向代理慢 15 倍,日志却零报错
  • 火焰图暴露连接风暴:upstream keepalive 缺失
  • 剩下的 10% 差距:基线对比指向编译器
  • -O0 调试编译如何吃掉我们 10% 的性能
  • 15 倍 QPS 差异的工程性复盘

在高可用 HTTPS 集群中,如何解决 TLS Session Key 轮转问题

  • 为什么 Session Ticket Key 管理比看起来更难
  • lua-resty-tls-session 如何在不重启的情况下轮转 Session Ticket Key
  • 三种方案对比
  • 性能与可用性的量化收益
  • FAQ
  • 为什么 Session Ticket Key 管理比看起来更难
  • lua-resty-tls-session 如何在不重启的情况下轮转 Session Ticket Key
  • 三种方案对比
  • 性能与可用性的量化收益
  • FAQ

Nginx C++ 模块内存泄漏:生产环境不重启定位根因

  • 生产环境难题:无法用 GDB 调试的 C++ 模块内存泄漏
  • 火焰图如何锁定 ngx_dubbo_module 中的泄漏函数
  • 从被动应对到主动赋能:XRay 带来的排障新闭环
  • 总结
  • 生产环境难题:无法用 GDB 调试的 C++ 模块内存泄漏
  • 火焰图如何锁定 ngx_dubbo_module 中的泄漏函数
  • 从被动应对到主动赋能:XRay 带来的排障新闭环
  • 总结

Nginx Worker 进程 RPS 上不去:追踪到 75 毫秒的事件循环阻塞

  • 负载很高却没干活:缺失 worker_cpu_affinity 导致的 CPU 争抢
  • 阻塞的 Lua IO 操作如何拖停 Nginx 事件循环
  • 量化文件 IO 延时:单次最高 1.5 毫秒
  • Nginx 事件循环阻塞有多严重?43952 个样本、最大 75 毫秒
  • 常见问题
  • 负载很高却没干活:缺失 worker_cpu_affinity 导致的 CPU 争抢
  • 阻塞的 Lua IO 操作如何拖停 Nginx 事件循环
  • 量化文件 IO 延时:单次最高 1.5 毫秒
  • Nginx 事件循环阻塞有多严重?43952 个样本、最大 75 毫秒
  • 常见问题

从崩溃到根因:OpenResty XRay 如何将 Nginx 内存踩踏问题分析得明明白白

  • 案例背景:日志无法解释的 Nginx worker 进程频繁崩溃
  • 分析录制文件:把崩溃过程回放回“第一现场”
  • 根因:Nginx 连接生命周期中的 Use-After-Free
  • 常见问题(FAQ)
  • 案例背景:日志无法解释的 Nginx worker 进程频繁崩溃
  • 分析录制文件:把崩溃过程回放回“第一现场”
  • 根因:Nginx 连接生命周期中的 Use-After-Free
  • 常见问题(FAQ)

在线上 Kong 服务进程中实时统计 CPU 和内存用量最高的插件(使用 OpenResty XRay)

  • 服务器进程中所有 Kong 插件的 CPU 使用情况
  • 服务器进程中所有 Kong 插件的内存使用情况
  • 服务器的额外负担
  • 下一步是什么?
Photo by 章亦春
  • 服务器进程中所有 Kong 插件的 CPU 使用情况
  • 服务器进程中所有 Kong 插件的内存使用情况
  • 服务器的额外负担
  • 下一步是什么?

使用 YSQL 语言对 Nginx 进程进行实时请求计数

  • 如何安装 run-ysql 工具
  • 统计实时总请求数
  • 筛选出特定的请求
  • 在 Web 控制台中使用 YSQL
  • 真正的非侵入式追踪
Photo by 章亦春
  • 如何安装 run-ysql 工具
  • 统计实时总请求数
  • 筛选出特定的请求
  • 在 Web 控制台中使用 YSQL
  • 真正的非侵入式追踪

Nginx 正则性能:用动态追踪定位最慢的正则模式

  • 前提条件与环境
  • 用 CPU 火焰图定位慢正则
  • 正则优化后的性能对比
  • 用 lua_regex_match_limit 限制 PCRE 回溯
  • 非回溯引擎:RE2 与 OpenResty Regex
  • Lua 内置模式作为正则替代
  • 在 Docker 和 Kubernetes 中追踪正则性能
  • 动态追踪工具的实现原理
  • 工具开销:非采样时为零
  • FAQ:Nginx 正则性能
  • 前提条件与环境
  • 用 CPU 火焰图定位慢正则
  • 正则优化后的性能对比
  • 用 lua_regex_match_limit 限制 PCRE 回溯
  • 非回溯引擎:RE2 与 OpenResty Regex
  • Lua 内置模式作为正则替代
  • 在 Docker 和 Kubernetes 中追踪正则性能
  • 动态追踪工具的实现原理
  • 工具开销:非采样时为零
  • FAQ:Nginx 正则性能

分析 OpenResty 或 Nginx 中最耗 CPU 的请求

  • 系统环境
  • 最耗 CPU 的请求主机名
  • 最耗 CPU 的请求 URI
  • 深入挖掘
  • 直接在 Web 控制台中运行
  • 追踪容器内的应用
  • 工具的实现方式
  • 工具的开销
Photo by Yichun Zhang
  • 系统环境
  • 最耗 CPU 的请求主机名
  • 最耗 CPU 的请求 URI
  • 深入挖掘
  • 直接在 Web 控制台中运行
  • 追踪容器内的应用
  • 工具的实现方式
  • 工具的开销

Lua CPU 火焰图实战:在线定位 LuaJIT 性能瓶颈

  • 什么是 Lua CPU 火焰图
  • 分析简单 LuaJIT 应用:验证火焰图精度
  • 生产环境实战:复杂 LuaJIT 应用
  • 采样开销
  • 生产安全性:不修改目标进程
  • 兼容性
  • 常见问题
Photo by Guido Jansen
  • 什么是 Lua CPU 火焰图
  • 分析简单 LuaJIT 应用:验证火焰图精度
  • 生产环境实战:复杂 LuaJIT 应用
  • 采样开销
  • 生产安全性:不修改目标进程
  • 兼容性
  • 常见问题
联系我们

很乐意听到您的反馈,请与我们联系 👋

成功发送消息!

我们的专家团队将在 24 小时之内与您联系。
x