精选文章

OpenResty Edge:私有 CDN、通用网关与 WAF 一体化平台

OpenResty Edge:私有 CDN、通用网关与 WAF 一体化平台

OpenResty Edge:私有 CDN、通用网关与 WAF 一体化平台

WAF 性能测试:OpenResty Edge 比 ModSecurity 快 3.7–10 倍(208 条规则)

WAF 性能测试:OpenResty Edge 比 ModSecurity 快 3.7–10 倍(208 条规则)

WAF 性能测试:OpenResty Edge 比 ModSecurity 快 3.7–10 倍(208 条规则)

OpenResty Edge Webhook:用事件驱动通知取代轮询的网关状态推送

OpenResty Edge Webhook:用事件驱动通知取代轮询的网关状态推送

OpenResty Edge Webhook:用事件驱动通知取代轮询的网关状态推送

为什么越来越多企业需要建立私有 CDN

为什么越来越多企业需要建立私有 CDN

为什么越来越多企业需要建立私有 CDN

OpenResty Edge 中的 zstd 压缩:比 gzip 和 Brotli 更快、更省

OpenResty Edge 中的 zstd 压缩:比 gzip 和 Brotli 更快、更省

OpenResty Edge 中的 zstd 压缩:比 gzip 和 Brotli 更快、更省

SSL 证书自动化:在 OpenResty Edge 中通过 ACME 协议自动签发与续期

SSL 证书自动化:在 OpenResty Edge 中通过 ACME 协议自动签发与续期

SSL 证书自动化:在 OpenResty Edge 中通过 ACME 协议自动签发与续期

如何在 OpenResty Edge 中自动批准 Kubernetes 网关节点

如何在 OpenResty Edge 中自动批准 Kubernetes 网关节点

如何在 OpenResty Edge 中自动批准 Kubernetes 网关节点

什么是 EdgeLang?OpenResty Edge 的网关 DSL,把复杂规则编译成高效安全的 Lua

什么是 EdgeLang?OpenResty Edge 的网关 DSL,把复杂规则编译成高效安全的 Lua

什么是 EdgeLang?OpenResty Edge 的网关 DSL,把复杂规则编译成高效安全的 Lua

Photo by Yichun Zhang

如何通过特殊的请求头传递真实的客户端 IP 地址到后端服务器

如何通过特殊的请求头传递真实的客户端 IP 地址到后端服务器

最新文章

如何在 OpenResty Edge 中实时清除 HTTP 缓存(全网生效)

  • 在 OpenResty Edge 中创建实时缓存清除任务
  • 使用 Cache-Status 响应头验证缓存状态
  • 在整个网关网络实时清除,无需重载或发布
  • 通过 URL 前缀清除缓存
  • 自定义清除条件
  • 常见问题
Photo by Yichun Zhang
  • 在 OpenResty Edge 中创建实时缓存清除任务
  • 使用 Cache-Status 响应头验证缓存状态
  • 在整个网关网络实时清除,无需重载或发布
  • 通过 URL 前缀清除缓存
  • 自定义清除条件
  • 常见问题

在 OpenResty Edge 中启用 HTTP 缓存:源站无 Cache-Control 头也能强制代理缓存

  • 在页面规则中启用代理缓存并配置缓存键
  • 用 curl 测试缓存并验证 Cache-Status HIT/MISS
  • 源站无 Cache-Control 头时强制缓存
  • 常见问题
Photo by Yichun Zhang
  • 在页面规则中启用代理缓存并配置缓存键
  • 用 curl 测试缓存并验证 Cache-Status HIT/MISS
  • 源站无 Cache-Control 头时强制缓存
  • 常见问题

使用 OpenResty Edge 配置一个最简单的反向代理和负载均衡器

  • 在 OpenResty Edge 的 Web 控制台中搭建反向代理和负载均衡器
  • 为后端创建应用和上游
  • 添加轮询页面规则
  • 将配置发布到每一个网关节点并用 curl 验证
Photo by Yichun Zhang
  • 在 OpenResty Edge 的 Web 控制台中搭建反向代理和负载均衡器
  • 为后端创建应用和上游
  • 添加轮询页面规则
  • 将配置发布到每一个网关节点并用 curl 验证

直播私有 CDN 选型:为什么平时能跑的架构,扛不住顶级赛事的峰值?

  • 直播峰值为什么会崩:平时能跑,不代表峰值能活
  • 私有 CDN 如何把峰值稳定性从概率变成确定性
  • 直播 CDN 成本对比:扛住峰值,不等于按峰值付费
  • 私有 CDN 的实施成本:不等于自己造轮子
  • 分发之外:直播场景在同一网关层还需要什么
  • 常见问题 FAQ
  • 直播峰值为什么会崩:平时能跑,不代表峰值能活
  • 私有 CDN 如何把峰值稳定性从概率变成确定性
  • 直播 CDN 成本对比:扛住峰值,不等于按峰值付费
  • 私有 CDN 的实施成本:不等于自己造轮子
  • 分发之外:直播场景在同一网关层还需要什么
  • 常见问题 FAQ

扛住顶级体育赛事直播:在 OpenResty Edge 中构建 HLS 视频直播分发层

  • 为什么直播 HLS 会击穿朴素的缓存方案
  • 在 OpenResty Edge 上落地:两条页面规则与相反的 TTL
  • 最关键的一步:Use stale proxy cache 动作
  • 用网关分区构建父层缓存,收敛为全网一次回源
  • 验证配置与压测
  • 常见问题 FAQ
  • 为什么直播 HLS 会击穿朴素的缓存方案
  • 在 OpenResty Edge 上落地:两条页面规则与相反的 TTL
  • 最关键的一步:Use stale proxy cache 动作
  • 用网关分区构建父层缓存,收敛为全网一次回源
  • 验证配置与压测
  • 常见问题 FAQ

如何在 OpenResty Edge 中实时清除 HTTP 缓存(全网生效)

  • 在 OpenResty Edge 中创建实时缓存清除任务
  • 使用 Cache-Status 响应头验证缓存状态
  • 在整个网关网络实时清除,无需重载或发布
  • 通过 URL 前缀清除缓存
  • 自定义清除条件
  • 常见问题
Photo by Yichun Zhang
  • 在 OpenResty Edge 中创建实时缓存清除任务
  • 使用 Cache-Status 响应头验证缓存状态
  • 在整个网关网络实时清除,无需重载或发布
  • 通过 URL 前缀清除缓存
  • 自定义清除条件
  • 常见问题

在 OpenResty Edge 中启用 HTTP 缓存:源站无 Cache-Control 头也能强制代理缓存

  • 在页面规则中启用代理缓存并配置缓存键
  • 用 curl 测试缓存并验证 Cache-Status HIT/MISS
  • 源站无 Cache-Control 头时强制缓存
  • 常见问题
Photo by Yichun Zhang
  • 在页面规则中启用代理缓存并配置缓存键
  • 用 curl 测试缓存并验证 Cache-Status HIT/MISS
  • 源站无 Cache-Control 头时强制缓存
  • 常见问题

在 OpenResty Edge 中限制请求速率(使用自定义键)

  • 在 OpenResty Edge 中添加限制请求率的页面规则
  • 使用 wrk 测试速率限制
  • 限制 SSL/TLS 握手的速率
  • OpenResty Edge 速率限制常见问题
Photo by Yichun Zhang
  • 在 OpenResty Edge 中添加限制请求率的页面规则
  • 使用 wrk 测试速率限制
  • 限制 SSL/TLS 握手的速率
  • OpenResty Edge 速率限制常见问题

需要 Service Mesh 吗?集中式网关何时是更优解

  • 需要 Service Mesh 吗?集中式网关何时是更优解
  • 缺乏统一治理的东西向流量四大痛点
  • Service Mesh vs. 集中式网关:工程取舍
  • 全生命周期演练:权限 → 灰度 → 回滚
  • 三阶段渐进路径、实测数据与 FAQ
  • 需要 Service Mesh 吗?集中式网关何时是更优解
  • 缺乏统一治理的东西向流量四大痛点
  • Service Mesh vs. 集中式网关:工程取舍
  • 全生命周期演练:权限 → 灰度 → 回滚
  • 三阶段渐进路径、实测数据与 FAQ

在 OpenResty Edge 的 Admin 控制台中管理 DNS 应用的访问权限

  • 以超级用户的身份查看 DNS 页面权限
  • 创建一个只有此 DNS 应用的读取权限的用户组
  • 创建一个测试帐户
  • 查看 DNS 应用页面的所授予的权限
  • 关于 OpenResty Edge
  • 以超级用户的身份查看 DNS 页面权限
  • 创建一个只有此 DNS 应用的读取权限的用户组
  • 创建一个测试帐户
  • 查看 DNS 应用页面的所授予的权限
  • 关于 OpenResty Edge

EdgeLang 教程:如何在 OpenResty Edge 中编写网关与 WAF 规则

  • EdgeLang 如何编译规则以提升性能
  • 如何编写 EdgeLang 页面规则(URL 重定向示例)
  • 用 curl 测试 EdgeLang 规则
  • 修改 EdgeLang 规则:精确匹配 vs. 前缀匹配
  • 如何用 EdgeLang 编写 WAF 规则
  • EdgeLang 用户手册与更多示例
  • 常见问题
  • EdgeLang 如何编译规则以提升性能
  • 如何编写 EdgeLang 页面规则(URL 重定向示例)
  • 用 curl 测试 EdgeLang 规则
  • 修改 EdgeLang 规则:精确匹配 vs. 前缀匹配
  • 如何用 EdgeLang 编写 WAF 规则
  • EdgeLang 用户手册与更多示例
  • 常见问题

Kubernetes 网关生命周期管理:用 OpenResty Edge 自动纳管节点、统一多集群管控

  • 为什么传统网关管理模式在 Kubernetes 下会失效
  • 如何自动化 Kubernetes 网关节点的纳管与审批
  • 在单一管控平面下管理多个 Kubernetes 集群
  • 两级上游:把 Kubernetes 上游权责映射到团队
  • 总结:如何为 Kubernetes 选择网关
  • 为什么传统网关管理模式在 Kubernetes 下会失效
  • 如何自动化 Kubernetes 网关节点的纳管与审批
  • 在单一管控平面下管理多个 Kubernetes 集群
  • 两级上游:把 Kubernetes 上游权责映射到团队
  • 总结:如何为 Kubernetes 选择网关

如何用 OpenResty Edge Lua 扩展实现事件驱动自动化:网关服务器离线时自动从 DNS 摘除节点

  • 什么是 OpenResty Edge Lua 扩展
  • 如何创建绑定网关事件的 Lua 扩展
  • 如何通过让网关服务器离线来触发并验证扩展
  • 关于 OpenResty Edge
  • 什么是 OpenResty Edge Lua 扩展
  • 如何创建绑定网关事件的 Lua 扩展
  • 如何通过让网关服务器离线来触发并验证扩展
  • 关于 OpenResty Edge

OpenResty Edge 中的 zstd 压缩:比 gzip 和 Brotli 更快、更省

  • 压缩算法的代际升级
  • 什么是 zstd
  • 为什么 zstd 特别适合在 OpenResty Edge 中使用
  • 如何在 OpenResty Edge 中启用 Zstandard 压缩
  • zstd、Brotli 与 gzip:应该怎么选
  • 压缩算法的代际升级
  • 什么是 zstd
  • 为什么 zstd 特别适合在 OpenResty Edge 中使用
  • 如何在 OpenResty Edge 中启用 Zstandard 压缩
  • zstd、Brotli 与 gzip:应该怎么选

在 OpenResty Edge 中精准还原真实的客户端 IP 地址

  • 在全局配置中设置 “真实来源 IP 信任地址” 和 “真实 IP 来源”
  • 配置应用使其输出客户端地址
  • 验证在 OpenResty Edge 中接收到的客户端地址
  • 关于 OpenResty Edge
  • 在全局配置中设置 “真实来源 IP 信任地址” 和 “真实 IP 来源”
  • 配置应用使其输出客户端地址
  • 验证在 OpenResty Edge 中接收到的客户端地址
  • 关于 OpenResty Edge

Kubernetes 网关生命周期管理:用 OpenResty Edge 自动纳管节点、统一多集群管控

  • 为什么传统网关管理模式在 Kubernetes 下会失效
  • 如何自动化 Kubernetes 网关节点的纳管与审批
  • 在单一管控平面下管理多个 Kubernetes 集群
  • 两级上游:把 Kubernetes 上游权责映射到团队
  • 总结:如何为 Kubernetes 选择网关
  • 为什么传统网关管理模式在 Kubernetes 下会失效
  • 如何自动化 Kubernetes 网关节点的纳管与审批
  • 在单一管控平面下管理多个 Kubernetes 集群
  • 两级上游:把 Kubernetes 上游权责映射到团队
  • 总结:如何为 Kubernetes 选择网关

如何在 OpenResty Edge 中管理 Kubernetes 上游并随 Pod 自动伸缩

  • 如何创建及使用 Kubernetes 上游
    • 创建 Kubernetes 集群
    • 创建 Kubernetes 上游
    • 创建页面规则使用 Kubernetes 上游
    • 测试:扩容 Pod 观察上游自动更新
  • 如何创建及使用 Kubernetes 上游
    • 创建 Kubernetes 集群
    • 创建 Kubernetes 上游
    • 创建页面规则使用 Kubernetes 上游
    • 测试:扩容 Pod 观察上游自动更新

在 OpenResty Edge 中限制请求速率(使用自定义键)

  • 在 OpenResty Edge 中添加限制请求率的页面规则
  • 使用 wrk 测试速率限制
  • 限制 SSL/TLS 握手的速率
  • OpenResty Edge 速率限制常见问题
Photo by Yichun Zhang
  • 在 OpenResty Edge 中添加限制请求率的页面规则
  • 使用 wrk 测试速率限制
  • 限制 SSL/TLS 握手的速率
  • OpenResty Edge 速率限制常见问题

如何使用 OpenResty Edge 构建私有 CDN 网络

  • 为什么选择搭建私有 CDN?
  • 灵活的多层边缘架构
  • 如何快速启动你的边缘网络
  • DNS 管理与智能调度
  • 缓存管理
  • 灵活可控的安全体系
  • 监控与运维
Photo by Yichun Zhang
  • 为什么选择搭建私有 CDN?
  • 灵活的多层边缘架构
  • 如何快速启动你的边缘网络
  • DNS 管理与智能调度
  • 缓存管理
  • 灵活可控的安全体系
  • 监控与运维

如何在 OpenResty Edge 中添加自定义响应头(无需重启)

在 OpenResty Edge 控制台通过页面规则添加自定义响应头,值可用静态字符串或内置变量,发布后同步推送至所有网关集群,无需重启服务器。
在 OpenResty Edge 控制台通过页面规则添加自定义响应头,值可用静态字符串或内置变量,发布后同步推送至所有网关集群,无需重启服务器。

OpenResty Edge gRPC 代理:分布式反向代理与负载均衡,网关侧 TLS 终止

  • 准备 gRPC 样本服务器并用 grpcurl 测试
  • 将 gRPC 服务器添加为上游并在页面规则中启用 gRPC 代理
  • 在网关侧终止 TLS,端到端验证 gRPC 代理
  • 准备 gRPC 样本服务器并用 grpcurl 测试
  • 将 gRPC 服务器添加为上游并在页面规则中启用 gRPC 代理
  • 在网关侧终止 TLS,端到端验证 gRPC 代理

OpenResty Edge 根据浏览器语言重定向:Accept-Language 页面规则

  • 用 Accept-Language 页面规则根据浏览器语言重定向
  • 以正则匹配根路径 URI 与 Accept-Language 请求头
  • 用 curl 测试法语重定向
  • 添加兜底规则将其他语言重定向到英文
  • 配置下发到所有网关节点,无需重载
Photo by Yichun Zhang
  • 用 Accept-Language 页面规则根据浏览器语言重定向
  • 以正则匹配根路径 URI 与 Accept-Language 请求头
  • 用 curl 测试法语重定向
  • 添加兜底规则将其他语言重定向到英文
  • 配置下发到所有网关节点,无需重载

使用 OpenResty Edge 配置一个最简单的反向代理和负载均衡器

  • 在 OpenResty Edge 的 Web 控制台中搭建反向代理和负载均衡器
  • 为后端创建应用和上游
  • 添加轮询页面规则
  • 将配置发布到每一个网关节点并用 curl 验证
Photo by Yichun Zhang
  • 在 OpenResty Edge 的 Web 控制台中搭建反向代理和负载均衡器
  • 为后端创建应用和上游
  • 添加轮询页面规则
  • 将配置发布到每一个网关节点并用 curl 验证

如何在 OpenResty Edge 中配置 SNI 代理:按 SNI 域名路由 TLS 而无需解密

  • 创建一个 SNI Proxy 类型的 Stream 应用
  • 创建上游与 SNI 服务器名页面规则
  • 为网关分区添加 SNI Proxy 端口
  • 用 curl 和浏览器测试 SNI 代理
  • 创建一个 SNI Proxy 类型的 Stream 应用
  • 创建上游与 SNI 服务器名页面规则
  • 为网关分区添加 SNI Proxy 端口
  • 用 curl 和浏览器测试 SNI 代理

OpenResty Edge TCP 负载均衡:无需修改 Nginx 配置代理 TCP 服务

  • 在 OpenResty Edge 中创建 TCP(stream)应用
  • 为 TCP 负载均衡添加上游和页面规则
  • 通过 Edge 节点连接 MySQL 测试 TCP 代理
  • 常见问题
  • 在 OpenResty Edge 中创建 TCP(stream)应用
  • 为 TCP 负载均衡添加上游和页面规则
  • 通过 Edge 节点连接 MySQL 测试 TCP 代理
  • 常见问题

OpenResty Edge 错误日志查看:应用、全局与网关服务器日志

  • 如何在 OpenResty Edge 中查看应用错误日志
  • 按请求 ID、网关、服务器与日志级别过滤错误日志
  • 三类全局错误日志(全局、Admin 站点、日志服务器)
  • 如何查看网关与 Admin 服务器上的 error.log 文件
  • 如何在 OpenResty Edge 中查看应用错误日志
  • 按请求 ID、网关、服务器与日志级别过滤错误日志
  • 三类全局错误日志(全局、Admin 站点、日志服务器)
  • 如何查看网关与 Admin 服务器上的 error.log 文件

OpenResty Edge WAF:启用、测试与拦截攻击

  • 以仅记录模式为应用启用 WAF
  • 发送测试攻击并查看 WAF 日志
  • 禁用与重新启用单条 WAF 规则
  • 添加 WAF 白名单以节省 CPU
  • WAF 命中返回 403:敏感度与风险评分阈值
  • 在 WAF 日志中验证 403 拦截
  • 用 EdgeLang 创建自定义 WAF 规则集
  • FAQ:OpenResty 上的 WAF
  • 以仅记录模式为应用启用 WAF
  • 发送测试攻击并查看 WAF 日志
  • 禁用与重新启用单条 WAF 规则
  • 添加 WAF 白名单以节省 CPU
  • WAF 命中返回 403:敏感度与风险评分阈值
  • 在 WAF 日志中验证 403 拦截
  • 用 EdgeLang 创建自定义 WAF 规则集
  • FAQ:OpenResty 上的 WAF

为什么越来越多企业需要建立私有 CDN

  • 当“商品化服务”反噬了创新力
  • 公有 CDN 的四个结构性难题
  • 为边缘计算而生的全能网关
  • 构建私有边缘网络的四大支柱
  • 当“商品化服务”反噬了创新力
  • 公有 CDN 的四个结构性难题
  • 为边缘计算而生的全能网关
  • 构建私有边缘网络的四大支柱

如何用 OpenResty Edge Lua 扩展实现事件驱动自动化:网关服务器离线时自动从 DNS 摘除节点

  • 什么是 OpenResty Edge Lua 扩展
  • 如何创建绑定网关事件的 Lua 扩展
  • 如何通过让网关服务器离线来触发并验证扩展
  • 关于 OpenResty Edge
  • 什么是 OpenResty Edge Lua 扩展
  • 如何创建绑定网关事件的 Lua 扩展
  • 如何通过让网关服务器离线来触发并验证扩展
  • 关于 OpenResty Edge

OpenResty Edge 数据库备份与故障转移:为什么流复制不等于备份

  • 第一层防线:定时数据库备份与异机同步
  • 第二层防线:主从流复制能防住误删吗?
  • 第三层防线:自动故障转移集群
  • 定时备份、流复制、自动故障转移:该选哪一层?
  • 常见问题
  • 第一层防线:定时数据库备份与异机同步
  • 第二层防线:主从流复制能防住误删吗?
  • 第三层防线:自动故障转移集群
  • 定时备份、流复制、自动故障转移:该选哪一层?
  • 常见问题

OpenResty Edge Webhook:用事件驱动通知取代轮询的网关状态推送

  • OpenResty Edge Webhook 带来什么:从数据洪流到关键信号
  • 为什么 OpenResty Edge Webhook 通知高效且安全
  • 构建少即是多的事件驱动运维生态
  • OpenResty Edge Webhook 带来什么:从数据洪流到关键信号
  • 为什么 OpenResty Edge Webhook 通知高效且安全
  • 构建少即是多的事件驱动运维生态

如何使用 OpenResty Edge 全局搜索:查找 Request ID、上游与应用

  • 根据 Request ID 搜索并跳转到 Request ID 解码器
  • 搜索 OpenResty Edge 界面上的文案
  • 通过 IP 地址或名称搜索上游
  • 通过名称搜索应用
  • 搜索博客文章
  • 根据 Request ID 搜索并跳转到 Request ID 解码器
  • 搜索 OpenResty Edge 界面上的文案
  • 通过 IP 地址或名称搜索上游
  • 通过名称搜索应用
  • 搜索博客文章

如何在 OpenResty Edge 中启用粘性 Cookie(会话保持)

  • 粘性 Cookie 如何在 OpenResty Edge 中保持会话亲和
  • 为上游启用粘性 Cookie(服务器级别)
  • 测试每个请求是否都命中同一台后端
  • 禁用粘性 Cookie 并恢复轮询
  • 再次测试,观察流量分散到多台后端
  • 常见问题
  • 粘性 Cookie 如何在 OpenResty Edge 中保持会话亲和
  • 为上游启用粘性 Cookie(服务器级别)
  • 测试每个请求是否都命中同一台后端
  • 禁用粘性 Cookie 并恢复轮询
  • 再次测试,观察流量分散到多台后端
  • 常见问题

在 OpenResty Edge 中配置 HTTP 基本认证——无需重载或重启网关

  • 为应用程序配置 HTTP 基本认证
    • 添加一个基本认证用户组
    • 通过页面规则启用基本认证
    • 用浏览器和 curl 测试基本认证
  • 跨所有应用配置全局 HTTP 基本认证
    • 添加全局基本认证用户组
    • 为应用配置全局基本认证
Photo by Yichun Zhang
  • 为应用程序配置 HTTP 基本认证
    • 添加一个基本认证用户组
    • 通过页面规则启用基本认证
    • 用浏览器和 curl 测试基本认证
  • 跨所有应用配置全局 HTTP 基本认证
    • 添加全局基本认证用户组
    • 为应用配置全局基本认证

如何在 OpenResty Edge 中发布与回滚网关配置:内置版本控制,无需重载

  • 为应用程序创建页面规则
  • 发布页面规则到所有网关集群
  • 用 curl 测试已发布的配置
  • 编辑页面规则
  • 发布修改后的配置
  • 测试修改后的配置
  • 还原最新的配置发布
  • 测试还原后的配置
  • 回滚到任意历史版本
Photo by Yichun Zhang
  • 为应用程序创建页面规则
  • 发布页面规则到所有网关集群
  • 用 curl 测试已发布的配置
  • 编辑页面规则
  • 发布修改后的配置
  • 测试修改后的配置
  • 还原最新的配置发布
  • 测试还原后的配置
  • 回滚到任意历史版本
联系我们

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

成功发送消息!

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