<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenResty Official Blog</title><link>https://blog.openresty.com/en/</link><description>Recent content on OpenResty Official Blog</description><language>en</language><managingEditor>OpenResty Inc. (OpenResty Inc.)</managingEditor><webMaster>OpenResty Inc. (OpenResty Inc.)</webMaster><lastBuildDate>2026-08-27T00:00:00.000Z</lastBuildDate><atom:link href="https://blog.openresty.com/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Flame Graphs: How to Read a CPU Flame Graph and Find the Code Burning Your CPU</title><link>https://blog.openresty.com/en/flame-graphs-explained/</link><pubDate>2026-08-27T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/flame-graphs-explained/</guid><description>&lt;ul>
&lt;li>What is a flame graph: definition, axes, and the four rules&lt;/li>
&lt;li>How to read a flame graph: plateaus, towers, hair, and self vs total&lt;/li>
&lt;li>Three real production flame graphs: PHP preg_match, Go regexp.MustCompile, Erlang erts_pcre_exec&lt;/li>
&lt;li>From 100% CPU to the culprit line: a four-step workflow with a per-stack routing table&lt;/li>
&lt;li>How to get a flame graph for your stack&lt;/li>
&lt;li>Icicle graphs, flame charts, and other variants&lt;/li>
&lt;li>Can AI read flame graphs for you?&lt;/li>
&lt;/ul></description><pic>/header-images/flame-graphs-explained.png</pic><private>false</private><tags>tutorial flame-graph cpu profiling openresty-xray performance</tags></item><item><title>P99 Latency: Why Averages Lie, and How to Diagnose the Slowest 1%</title><link>https://blog.openresty.com/en/p99-latency/</link><pubDate>2026-08-27T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/p99-latency/</guid><description>&lt;ul>
&lt;li>What is P99 latency?&lt;/li>
&lt;li>P50 vs P95 vs P99: what each percentile tells you&lt;/li>
&lt;li>Why average latency lies&lt;/li>
&lt;li>Why is P99 latency high? A root-cause spectrum&lt;/li>
&lt;li>How to diagnose high P99 latency&lt;/li>
&lt;li>How to reduce P99 latency: fix what you found&lt;/li>
&lt;li>Summary&lt;/li>
&lt;li>Frequently Asked Questions&lt;/li>
&lt;/ul></description><pic>/header-images/p99-latency.jpg</pic><private>false</private><tags>openresty-xray p99 latency performance flame-graph</tags></item><item><title>Memory Leak Detection in Production: From RSS Curve to Source Line</title><link>https://blog.openresty.com/en/openresty-xray-memory-leak-detection/</link><pubDate>2026-08-18T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-xray-memory-leak-detection/</guid><description>&lt;ul>
&lt;li>The Symptom: A Memory Curve That Only Goes Up&lt;/li>
&lt;li>Memory Leak or Just High Memory Usage?&lt;/li>
&lt;li>Four Leak Patterns with Real Root-Cause Chains&lt;/li>
&lt;li>It Looks Like a Leak, but It Isn&amp;rsquo;t&lt;/li>
&lt;li>How to Locate a Leak: Top-Down Layered Attribution&lt;/li>
&lt;li>Why Traditional Tools Fall Short in Production&lt;/li>
&lt;li>Frequently Asked Questions&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-xray-memory-leak-detection.jpg</pic><private>false</private><tags>openresty-xray memory tutorial</tags></item><item><title>Off-CPU Analysis: Four Root Causes Behind Low CPU Yet High Latency</title><link>https://blog.openresty.com/en/openresty-xray-off-cpu-analysis/</link><pubDate>2026-08-14T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-xray-off-cpu-analysis/</guid><description>&lt;ul>
&lt;li>What Is Off-CPU Time?&lt;/li>
&lt;li>The Symptom: CPU Usage Won&amp;rsquo;t Climb, Yet Requests Are Queuing&lt;/li>
&lt;li>Four Categories of Off-CPU Root Causes with Real-World Root-Cause Chains&lt;/li>
&lt;li>How to Quantify Off-CPU Time&lt;/li>
&lt;li>On-CPU + Off-CPU = Wall-Clock Time: The Bigger Picture and the Tool Ecosystem&lt;/li>
&lt;li>FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-xray-off-cpu-analysis.jpg</pic><private>false</private><tags>openresty-xray off-cpu tutorial</tags></item><item><title>CDN for Live Streaming: Surviving Peak Events Without Peak-Event Bills</title><link>https://blog.openresty.com/en/edge-private-cdn-live-streaming/</link><pubDate>2026-07-20T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-private-cdn-live-streaming/</guid><description>&lt;ul>
&lt;li>Why live streams crash at peak: running day-to-day doesn&amp;rsquo;t mean surviving the peak&lt;/li>
&lt;li>How a private CDN turns peak stability from probability into certainty&lt;/li>
&lt;li>Live streaming CDN cost comparison: surviving the peak isn&amp;rsquo;t paying for the peak&lt;/li>
&lt;li>The real cost of a private CDN: not the same as building from scratch&lt;/li>
&lt;li>Beyond delivery: what a live streaming scenario needs from the same gateway layer&lt;/li>
&lt;li>FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/edge-private-cdn-live-streaming.jpg</pic><private>false</private><tags>openresty-edge cdn live-streaming</tags></item><item><title>OpenResty XRay Version 26.7.15. Now Available</title><link>https://blog.openresty.com/en/xray-ann-26.7.15/</link><pubDate>2026-07-15T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-ann-26.7.15/</guid><description>&lt;ul>
&lt;li>Key Highlights&lt;/li>
&lt;li>Other Important Updates&lt;/li>
&lt;/ul></description><pic>/header-images/xray-logo.jpg</pic><private>false</private><tags>openresty-xray releases</tags></item><item><title>OpenResty XRay AI Assistant: Making Every Piece of Analysis Data Speak</title><link>https://blog.openresty.com/en/openresty-xray-ai-assistant/</link><pubDate>2026-07-14T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-xray-ai-assistant/</guid><description>&lt;ul>
&lt;li>How Is It Different from Pasting a Report into ChatGPT?&lt;/li>
&lt;li>Three Typical Scenarios&lt;/li>
&lt;li>FAQ: Can AI Really Read a Flame Graph? How Reliable Is It?&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-xray-ai-assistant.jpg</pic><private>false</private><tags>openresty-xray ai analyzer</tags></item><item><title>Building a Self-Hosted Live Streaming CDN for HLS with OpenResty Edge</title><link>https://blog.openresty.com/en/edge-hls-live-streaming/</link><pubDate>2026-07-08T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-hls-live-streaming/</guid><description>&lt;ul>
&lt;li>Why live HLS breaks a naive caching setup&lt;/li>
&lt;li>Building it on OpenResty Edge: two page rules with opposite TTLs&lt;/li>
&lt;li>The most critical step: the Use stale proxy cache action&lt;/li>
&lt;li>A shield tier with gateway partitions: collapsing to one fetch network-wide&lt;/li>
&lt;li>Verifying the configuration and load testing&lt;/li>
&lt;li>FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/edge-hls-live-streaming.jpg</pic><private>false</private><tags>tutorial openresty-edge cache proxy hls live-streaming</tags></item><item><title>OpenResty Private Libraries: High-Performance Lua &amp; Nginx Modules</title><link>https://blog.openresty.com/en/private-libs/</link><pubDate>2026-07-08T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/private-libs/</guid><description>&lt;ul>
&lt;li>The Full Catalog&lt;/li>
&lt;li>What&amp;rsquo;s Inside, by Scenario&lt;/li>
&lt;li>How Licensing Works&lt;/li>
&lt;li>FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/private-libs.jpg</pic><private>false</private><tags>private-library openresty nginx lua openresty-xray</tags></item><item><title>OpenResty Tutorial: 7-Step Hands-On Guide from Hello World to Production</title><link>https://blog.openresty.com/en/openresty-tutorial/</link><pubDate>2026-07-03T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-tutorial/</guid><description>&lt;div class="xray-banner">
&lt;p>Check out how OpenResty XRay helps organizations troubleshoot issues and optimize the performance of their applications.&lt;/p>
&lt;a href="https://openresty.com/en//xray/request-demo/?src=blog_txt_banner_openresty-tutorial" target="_blank">
&lt;img src="https://blog.openresty.com/img/search.svg"/>
&lt;span>Learn More&lt;/span>
&lt;/a>
&lt;a class="xray-live-demo-link" href="https://demo.xray.openresty.com/targets/" target="_blank">
&lt;span class="icon-pc-display-horizontal">&lt;/span>
&lt;span>LIVE DEMO&lt;/span>
&lt;/a>
&lt;/div>
&lt;p>This OpenResty tutorial series takes you from a fresh Linux server to a working Nginx + Lua application in seven hands-on steps — no prior Lua experience required.&lt;/p></description><pic>/header-images/openresty-tutorial.jpg</pic><private>false</private><tags>nginx openresty tutorial lua</tags></item><item><title>Install OpenResty - Complete Setup Guide for All Platforms</title><link>https://blog.openresty.com/en/install-openresty/</link><pubDate>2026-06-30T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/install-openresty/</guid><description>&lt;ul>
&lt;li>Supported Platforms&lt;/li>
&lt;li>Quick Start (Ubuntu / Debian)&lt;/li>
&lt;li>Platform Installation Guides&lt;/li>
&lt;li>ARM64 / Aarch64&lt;/li>
&lt;li>Alpine Linux&lt;/li>
&lt;li>macOS &amp;amp; Building from Source&lt;/li>
&lt;li>Verify Your Installation&lt;/li>
&lt;li>FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/install-openresty.jpg</pic><private>false</private><tags>nginx openresty tutorial install</tags></item><item><title>OpenResty 1.31.1.1 Released</title><link>https://blog.openresty.com/en/openresty-ann-1.31.1.1/</link><pubDate>2026-06-05T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-ann-1.31.1.1/</guid><description>&lt;ul>
&lt;li>Version highlights&lt;/li>
&lt;li>Full Changelog&lt;/li>
&lt;li>Feedback&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-logo.png</pic><private>false</private><tags>openresty releases</tags></item><item><title>OpenResty 1.29.2.5 Released</title><link>https://blog.openresty.com/en/openresty-ann-1.29.2.5/</link><pubDate>2026-05-25T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-ann-1.29.2.5/</guid><description>&lt;ul>
&lt;li>Version highlights&lt;/li>
&lt;li>Full Changelog&lt;/li>
&lt;li>Feedback&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-logo.png</pic><private>false</private><tags>openresty releases</tags></item><item><title>OpenResty 1.29.2.4 released</title><link>https://blog.openresty.com/en/openresty-ann-1.29.2.4/</link><pubDate>2026-05-20T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-ann-1.29.2.4/</guid><description>&lt;ul>
&lt;li>Version highlights&lt;/li>
&lt;li>Full Change logs&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-logo.png</pic><private>false</private><tags>openresty releases</tags></item><item><title>Do You Need a Service Mesh? When a Centralized Gateway Is Enough</title><link>https://blog.openresty.com/en/edge-inner-traffic/</link><pubDate>2026-05-18T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-inner-traffic/</guid><description>&lt;ul>
&lt;li>Do you need a service mesh? When a centralized gateway is the better fit&lt;/li>
&lt;li>Four pain points of ungoverned east-west traffic&lt;/li>
&lt;li>Service Mesh vs. centralized gateway: engineering trade-offs&lt;/li>
&lt;li>Full lifecycle walkthrough: permissions → canary → rollback&lt;/li>
&lt;li>Three-stage rollout path, real-world results, and FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/edge-inner-traffic.jpg</pic><private>false</private><tags>tutorial openresty-edge gateway microservices</tags></item><item><title>OpenResty XRay Version 26.5.11. Now Available</title><link>https://blog.openresty.com/en/xray-ann-26.5.11/</link><pubDate>2026-05-12T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-ann-26.5.11/</guid><description>&lt;ul>
&lt;li>Key Highlights&lt;/li>
&lt;li>Other Important Updates&lt;/li>
&lt;/ul></description><pic>/header-images/xray-logo.jpg</pic><private>false</private><tags>openresty-xray releases</tags></item><item><title>OpenResty Edge Version 26.6.8 Now Available</title><link>https://blog.openresty.com/en/edge-ann-26.6.8/</link><pubDate>2026-05-08T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-ann-26.6.8/</guid><description>&lt;ul>
&lt;li>Core Highlights&lt;/li>
&lt;li>Enhanced Features &amp;amp; Increased Flexibility&lt;/li>
&lt;li>Improved Usability &amp;amp; Observability&lt;/li>
&lt;li>Key Fixes and Stability Enhancements&lt;/li>
&lt;li>How to Upgrade?&lt;/li>
&lt;/ul></description><pic>/header-images/company-logo.jpg</pic><private>false</private><tags>openresty-edge releases</tags></item><item><title>XDP DDoS Mitigation in Production: Million-PPS Kernel-Native Defense, Built into OpenResty Edge</title><link>https://blog.openresty.com/en/ddos-intro/</link><pubDate>2026-05-07T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/ddos-intro/</guid><description>&lt;ul>
&lt;li>The impossible triangle of DDoS mitigation architectures&lt;/li>
&lt;li>How OpenResty Edge delivers XDP DDoS mitigation for all three goals&lt;/li>
&lt;li>Measured performance: 170k–180k PPS on an AWS t3.small, million-PPS in the lab&lt;/li>
&lt;li>Automated DDoS response as a prerequisite, not a perk&lt;/li>
&lt;li>Observability: real-time DDoS mitigation metrics&lt;/li>
&lt;li>FAQ: XDP DDoS mitigation&lt;/li>
&lt;/ul></description><pic>/header-images/ddos-intro.jpg</pic><private>false</private><tags>ddos</tags></item><item><title>OpenResty Edge Database Backup and Failover: Why Replication Is Not a Backup</title><link>https://blog.openresty.com/en/edge-db-backup/</link><pubDate>2026-05-06T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-db-backup/</guid><description>&lt;ul>
&lt;li>First line of defense: scheduled database backups and off-host sync&lt;/li>
&lt;li>Second line of defense: does streaming replication protect against accidental deletion?&lt;/li>
&lt;li>Third line of defense: automatic database failover cluster&lt;/li>
&lt;li>Backup vs. replication vs. failover: which do you need?&lt;/li>
&lt;li>Frequently asked questions&lt;/li>
&lt;/ul></description><pic>/header-images/edge-db-backup.jpg</pic><private>false</private><tags>openresty-edge db</tags></item><item><title>Kubernetes Gateway Lifecycle Management: Auto-Approve Nodes &amp; Unify Multi-Cluster Control with OpenResty Edge</title><link>https://blog.openresty.com/en/edge-k8s-what/</link><pubDate>2026-04-23T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-k8s-what/</guid><description>&lt;ul>
&lt;li>Why traditional gateway management breaks in Kubernetes&lt;/li>
&lt;li>How to automate Kubernetes gateway node onboarding and approval&lt;/li>
&lt;li>Managing multiple Kubernetes clusters from a single control plane&lt;/li>
&lt;li>Two-tier upstreams: mapping Kubernetes upstream ownership to teams&lt;/li>
&lt;li>Summary: choosing a gateway for Kubernetes&lt;/li>
&lt;/ul></description><pic>/header-images/edge-k8s-what.jpg</pic><private>false</private><tags>openresty-edge kubernetes gateway overview</tags></item><item><title>OpenResty Edge Configuration as Code: GitOps-Driven Gateway Management with `edge2yaml`</title><link>https://blog.openresty.com/en/what-edge-yaml/</link><pubDate>2026-04-22T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/what-edge-yaml/</guid><description>&lt;ul>
&lt;li>What Is &lt;code>edge2yaml&lt;/code>?&lt;/li>
&lt;li>When to Use &lt;code>edge2yaml&lt;/code>: GitOps, Multi-Environment Sync, and Batch Editing&lt;/li>
&lt;li>&lt;code>edge2yaml&lt;/code> vs. OpenResty Edge Admin&amp;rsquo;s Native Configuration Management&lt;/li>
&lt;li>Frequently Asked Questions&lt;/li>
&lt;/ul></description><pic>/header-images/what-edge-yaml.jpg</pic><private>false</private><tags>openresty-edge edge2yaml</tags></item><item><title>lua-cjson Too Slow? jit.cjson Speeds Up JSON Encoding in OpenResty 18x</title><link>https://blog.openresty.com/en/jit.cjson/</link><pubDate>2026-04-17T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/jit.cjson/</guid><description>&lt;ul>
&lt;li>Where Exactly Is the Performance Ceiling?&lt;/li>
&lt;li>Common Workaround Strategies and Their Limitations&lt;/li>
&lt;li>Why Custom Development or Hacking Existing Libraries is a Bad Idea&lt;/li>
&lt;li>Seeking a More Direct Breakthrough&lt;/li>
&lt;li>Infrastructure-Level Optimization: &lt;code>jit.cjson&lt;/code>&lt;/li>
&lt;li>Why the Official Solution is the Safer Bet&lt;/li>
&lt;li>Minimal Adoption Cost&lt;/li>
&lt;/ul></description><pic>/header-images/jit.cjson.jpg</pic><private>false</private><tags>private-library json lua</tags></item><item><title>Minify HTML, CSS &amp; JS Inside Nginx: OpenResty's 120 MB/s Streaming Minifiers</title><link>https://blog.openresty.com/en/openresty-minifier-what/</link><pubDate>2026-04-07T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-minifier-what/</guid><description>&lt;ul>
&lt;li>When You Can&amp;rsquo;t Touch the Build Pipeline&lt;/li>
&lt;li>Why a Regex Won&amp;rsquo;t Cut It&lt;/li>
&lt;li>Three Approaches That Almost Work&lt;/li>
&lt;li>A Streaming FSM for Each Language, Compiled to Native Code&lt;/li>
&lt;li>Five-Minute Setup: A Configuration Example&lt;/li>
&lt;li>Four Things to Know Before Going Live&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-minifier-what.jpg</pic><private>false</private><tags>nginx lua private-library tls</tags></item><item><title>OpenResty 1.29.2.3 Released</title><link>https://blog.openresty.com/en/openresty-ann-1.29.2.3/</link><pubDate>2026-03-26T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-ann-1.29.2.3/</guid><description>&lt;ul>
&lt;li>Version highlights&lt;/li>
&lt;li>Full Changelog&lt;/li>
&lt;li>Feedback&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-logo.png</pic><private>false</private><tags>openresty releases</tags></item><item><title>Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives</title><link>https://blog.openresty.com/en/xray-vulnerability-scanning/</link><pubDate>2026-03-24T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-vulnerability-scanning/</guid><description>&lt;ul>
&lt;li>Why Version-Matching Vulnerability Scanning Fails: Three Compounding Costs&lt;/li>
&lt;li>How OpenResty XRay&amp;rsquo;s Binary Vulnerability Scanning Works: The Evidence-First Model&lt;/li>
&lt;li>Case Study: Binary Vulnerability Scanning on Rocky Linux with Dual OpenSSL Versions&lt;/li>
&lt;li>From Alert Fatigue to Precision: A Sustainable Vulnerability Scanning Practice&lt;/li>
&lt;/ul></description><pic>/header-images/xray-vulnerability-scanning.jpg</pic><private>false</private><tags>security vulnerability openresty-xray cve</tags></item><item><title>P99 Latency in a D Service Cut 73%: Conservative GC Meets an O(n) Query Under Load</title><link>https://blog.openresty.com/en/xray-dlang-p99/</link><pubDate>2026-03-17T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-dlang-p99/</guid><description>&lt;ul>
&lt;li>Analyzing GC Traps and Business Hotspots in the Flame Graph&lt;/li>
&lt;li>Optimization Roadmap: Why Sequence Is More Important Than Action&lt;/li>
&lt;li>Conclusion: From Code Logic to Runtime Reality&lt;/li>
&lt;/ul></description><pic>/header-images/xray-dlang-p99.jpg</pic><private>false</private><tags>d-lang flame-graph performance garbage-collection</tags></item><item><title>OpenResty XRay Version 26.2.1. Now Available</title><link>https://blog.openresty.com/en/xray-ann-26.2.1/</link><pubDate>2026-03-13T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-ann-26.2.1/</guid><description>&lt;ul>
&lt;li>Key Highlights&lt;/li>
&lt;li>Stability and Usability Enhancements&lt;/li>
&lt;/ul></description><pic>/header-images/xray-logo.jpg</pic><private>false</private><tags>openresty-xray releases</tags></item><item><title>End-to-End Client Real IP Passthrough in OpenResty Edge</title><link>https://blog.openresty.com/en/edge-proxy-protocol/</link><pubDate>2026-03-05T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-proxy-protocol/</guid><description>&lt;ul>
&lt;li>Use Cases and Topology&lt;/li>
&lt;li>IP Passthrough Methods Overview&lt;/li>
&lt;li>OpenResty Edge Configuration&lt;/li>
&lt;li>Key Variables&lt;/li>
&lt;li>Page Rules&lt;/li>
&lt;li>Verification&lt;/li>
&lt;/ul></description><pic>/header-images/edge-proxy-protocol.jpg</pic><private>false</private><tags>openresty-edge</tags></item><item><title>How OpenResty XRay Enables Full-Stack Dynamic Tracing in Production</title><link>https://blog.openresty.com/en/xray-dynamic-advantage/</link><pubDate>2026-03-03T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-dynamic-advantage/</guid><description>&lt;ul>
&lt;li>Where Do Existing Dynamic Tracing Frameworks Fall Short in Production?&lt;/li>
&lt;li>How Did OpenResty XRay Rethink Dynamic Tracing at the Architecture Level?&lt;/li>
&lt;li>What Is a Full-Stack Flame Graph and How Do You Use It to Diagnose Performance Bottlenecks?&lt;/li>
&lt;li>How Is OpenResty XRay Expanding Its Observability Coverage Over Time?&lt;/li>
&lt;li>Further Reading and Real-World Case Studie&lt;/li>
&lt;/ul></description><pic>/header-images/xray-dynamic-advantage.jpg</pic><private>false</private><tags>openresty-xray ylang dynamic-tracing</tags></item><item><title>OpenResty 1.29.2.1 Released</title><link>https://blog.openresty.com/en/openresty-ann-1.29.2.1/</link><pubDate>2026-03-03T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/openresty-ann-1.29.2.1/</guid><description>&lt;ul>
&lt;li>Version highlights&lt;/li>
&lt;li>Full Changelog&lt;/li>
&lt;li>Feedback&lt;/li>
&lt;/ul></description><pic>/header-images/openresty-logo.png</pic><private>false</private><tags>openresty releases</tags></item><item><title>OpenResty Edge: Private CDN, Universal Gateway &amp; WAF in One Platform</title><link>https://blog.openresty.com/en/what-is-openresty-edge/</link><pubDate>2026-02-24T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/what-is-openresty-edge/</guid><description>&lt;ul>
&lt;li>What Is OpenResty Edge? Architecture Overview&lt;/li>
&lt;li>OpenResty Edge vs. Traditional Stack: 4 Problems Solved&lt;/li>
&lt;li>Universal Gateway &amp;amp; Load Balancing: Dynamic Routing for Microservices&lt;/li>
&lt;li>Real-World Case Studies: OTA, News, and SaaS Deployments&lt;/li>
&lt;/ul></description><pic>/header-images/what-is-openresty-edge.jpg</pic><private>false</private><tags>openresty-edge</tags></item><item><title>Introduction to OpenResty XRay</title><link>https://blog.openresty.com/en/what-is-openresty-xray/</link><pubDate>2026-02-10T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/what-is-openresty-xray/</guid><description>&lt;ul>
&lt;li>Core Philosophy: A Tracing Engine Built for the Unknown&lt;/li>
&lt;li>Turning Noise into Signal: How XRay Demystifies Production Issues&lt;/li>
&lt;li>Empowering Engineering Teams in Cloud-Native Reality&lt;/li>
&lt;li>Built on a Robust, Open Technological Foundatione&lt;/li>
&lt;li>Real-World Success Stories&lt;/li>
&lt;/ul></description><pic>/header-images/what-is-openresty-xray.jpg</pic><private>false</private><tags>openresty-xray nginx</tags></item><item><title>GSLB Explained: How Global Server Load Balancing Works — and Where DNS-Only Scheduling Fails</title><link>https://blog.openresty.com/en/edge-gslb-what/</link><pubDate>2026-01-27T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-gslb-what/</guid><description>&lt;ul>
&lt;li>Why Traditional GSLB Tools Fall Short&lt;/li>
&lt;li>What an Ideal Global Server Load Balancing System Requires&lt;/li>
&lt;li>A Feedback-Driven GSLB Architecture&lt;/li>
&lt;li>GSLB Before and After&lt;/li>
&lt;/ul></description><pic>/header-images/edge-gslb-what.jpg</pic><private>false</private><tags>openresty-edge gslb</tags></item><item><title>lua-resty-kafka Blocking Your Nginx Workers? Meet lua-resty-kafka-fast</title><link>https://blog.openresty.com/en/lua-resty-kafka-fast/</link><pubDate>2026-01-19T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/lua-resty-kafka-fast/</guid><description>&lt;ul>
&lt;li>Three Common Anti-Patterns We See in Production&lt;/li>
&lt;li>What is &lt;code>lua-resty-kafka-fast&lt;/code>&lt;/li>
&lt;li>lua-resty-kafka vs lua-resty-kafka-fast&lt;/li>
&lt;li>What This Changes at the Architecture Level&lt;/li>
&lt;li>FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/lua-resty-kafka-fast.jpg</pic><private>false</private><tags>private-library kafka lua</tags></item><item><title>OpenResty Edge Version 25.12.5-1 Now Available</title><link>https://blog.openresty.com/en/edge-ann-25-12-5-1/</link><pubDate>2026-01-16T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-ann-25-12-5-1/</guid><description>&lt;ul>
&lt;li>Key Highlights&lt;/li>
&lt;li>Key Optimizations&lt;/li>
&lt;li>Key Fixes and Stability Enhancements&lt;/li>
&lt;li>How to upgrade?&lt;/li>
&lt;/ul></description><pic>/header-images/company-logo.jpg</pic><private>false</private><tags>openresty-edge releases</tags></item><item><title>Hunting Down a Silent Memory Leak in OpenResty Without a Reboot</title><link>https://blog.openresty.com/en/nginx-prod-mem-leak/</link><pubDate>2026-01-13T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/nginx-prod-mem-leak/</guid><description>&lt;ul>
&lt;li>A Complete Dissection of a Production Memory Leak&lt;/li>
&lt;li>Why Are These Problems Nearly Unsolvable?&lt;/li>
&lt;li>A System Transformation&lt;/li>
&lt;li>When Performance Issues Go Beyond Just Tools&lt;/li>
&lt;/ul></description><pic>/header-images/nginx-prod-mem-leak.jpg</pic><private>false</private><tags>case-study openresty-xray memory nginx</tags></item><item><title>Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build</title><link>https://blog.openresty.com/en/xray-keepalive/</link><pubDate>2025-12-23T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-keepalive/</guid><description>&lt;ul>
&lt;li>A 15x Slower Nginx Reverse Proxy — and No Errors in the Logs&lt;/li>
&lt;li>Flame Graphs Expose a Connection Storm: The Missing upstream keepalive&lt;/li>
&lt;li>The Remaining 10% Gap: Baseline Comparison Points to the Compiler&lt;/li>
&lt;li>How an -O0 Debug Build Cost Us 10% of Performance&lt;/li>
&lt;/ul></description><pic>/header-images/xray-keepalive.jpg</pic><private>false</private><tags>openresty-xray case-study lua nginx off-cpu</tags></item><item><title>TLS Session Resumption in Nginx Clusters: Zero-Downtime Key Rotation</title><link>https://blog.openresty.com/en/lr-tls-session/</link><pubDate>2025-12-19T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/lr-tls-session/</guid><description>&lt;ul>
&lt;li>Why Session Ticket Key Management Is Harder Than It Looks&lt;/li>
&lt;li>How lua-resty-tls-session Rotates Session Ticket Keys Without Restarts&lt;/li>
&lt;li>Comparing the Three Approaches&lt;/li>
&lt;li>Quantifying Latency Reduction and Uptime Gains&lt;/li>
&lt;li>FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/lr-tls-session.jpg</pic><private>false</private><tags>private-library nginx lua openresty tls</tags></item><item><title>WAF Benchmark: OpenResty Edge 3.7–10x Faster than ModSecurity (208 Rules)</title><link>https://blog.openresty.com/en/why-edge-waf/</link><pubDate>2025-12-15T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/why-edge-waf/</guid><description>&lt;ul>
&lt;li>The Benchmark: 208 WAF Rules on One CPU Core&lt;/li>
&lt;li>Why Rule Count Doesn&amp;rsquo;t Have to Hurt WAF Performance&lt;/li>
&lt;li>How to Implement a WAF at the Edge: Four Steps&lt;/li>
&lt;li>FAQ: WAF performance&lt;/li>
&lt;/ul></description><pic>/header-images/why-edge-waf.jpg</pic><private>false</private><tags>tutorial openresty-edge waf</tags></item><item><title>Fix LuaJIT RSS Memory Leak in OpenResty: Stop OOM Kills Without Restarts</title><link>https://blog.openresty.com/en/luajit-plus/</link><pubDate>2025-12-04T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/luajit-plus/</guid><description>&lt;ul>
&lt;li>What Is the LuaJIT Pseudo Memory Leak?&lt;/li>
&lt;li>Diagnosing the Problem with Real Production Data&lt;/li>
&lt;li>Why Standard Fixes Don&amp;rsquo;t Work&lt;/li>
&lt;li>How LuaJIT-plus Fixes This at the Allocator Level&lt;/li>
&lt;li>Production Impact After Deployment&lt;/li>
&lt;/ul></description><pic>/header-images/luajit-plus.jpg</pic><private>false</private><tags>memory openresty-xray luajit private-library</tags></item><item><title>OpenResty Edge Webhook: Event-Driven Gateway Notifications That Replace Polling</title><link>https://blog.openresty.com/en/why-edge-webhook/</link><pubDate>2025-12-03T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/why-edge-webhook/</guid><description>&lt;ul>
&lt;li>What an OpenResty Edge Webhook Delivers: From Data Deluge to Critical Signals&lt;/li>
&lt;li>Why OpenResty Edge Webhook Notifications Are Efficient and Secure&lt;/li>
&lt;li>Building a Less is More Event-Driven Operations Ecosystem&lt;/li>
&lt;/ul></description><pic>/header-images/why-edge-webhook.jpg</pic><private>false</private><tags>tutorial openresty-edge webhooks</tags></item><item><title>How We Pinpointed a 244ms Latency Spike in a 500k QPS OpenResty Gateway</title><link>https://blog.openresty.com/en/xray-p99/</link><pubDate>2025-11-18T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-p99/</guid><description>&lt;ul>
&lt;li>Latency Spikes and CPU Waste Hidden Beneath Healthy Averages&lt;/li>
&lt;li>Troubleshooting OpenResty Latency Without Code Changes or Restarts&lt;/li>
&lt;li>The Results: Latency Spikes Eliminated, 30% Lower CPU Usage&lt;/li>
&lt;li>Frequently Asked Questions&lt;/li>
&lt;/ul></description><pic>/header-images/xray-p99.jpg</pic><private>false</private><tags>openresty-xray qps p99 cpu</tags></item><item><title>Open Source OpenResty vs. OpenResty Edge: Key Differences</title><link>https://blog.openresty.com/en/edge-or-comparison/</link><pubDate>2025-11-17T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-or-comparison/</guid><description>&lt;ul>
&lt;li>Open Source vs. OpenResty Edge at a Glance&lt;/li>
&lt;li>When Open Source Hits Its Limits: 6 Real Scenarios&lt;/li>
&lt;li>Choosing the Right Path for Your Infrastructure&lt;/li>
&lt;/ul></description><pic>/header-images/edge-or-comparison.jpg</pic><private>false</private><tags>tutorial openresty-edge</tags></item><item><title>Private CDN Solution: Enterprise Edge Architecture | OpenResty Edge</title><link>https://blog.openresty.com/en/edge-cdn-benefit/</link><pubDate>2025-11-11T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-cdn-benefit/</guid><description>&lt;ul>
&lt;li>The Breaking Point: When Public CDNs Fail the Enterprise&lt;/li>
&lt;li>The CDN Landscape: Public CDN vs. DIY Open Source vs. Commercial Private CDN&lt;/li>
&lt;li>From OpEx to CapEx: The Business Case for a Private CDN&lt;/li>
&lt;li>Why OpenResty Edge? Evaluating an Enterprise Private CDN Platform&lt;/li>
&lt;li>The Edge Is Your Competitive Advantage — Not a Commodity&lt;/li>
&lt;li>Frequently Asked Questions&lt;/li>
&lt;/ul></description><pic>/header-images/edge-cdn-benefit.jpg</pic><private>false</private><tags>tutorial openresty-edge cdn</tags></item><item><title>How to Diagnose Java Memory Leaks in Production — Without Heap Dumps or Restarts</title><link>https://blog.openresty.com/en/xray-java-mem/</link><pubDate>2025-11-10T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-java-mem/</guid><description>&lt;ul>
&lt;li>Why Full GCs Didn&amp;rsquo;t Reclaim the Heap: A Production Java Memory Leak&lt;/li>
&lt;li>How to Diagnose a Java Memory Leak in Production Without a Heap Dump&lt;/li>
&lt;li>How to Find a Java Memory Leak: A Reusable 3-Step Method&lt;/li>
&lt;li>Why Use OpenResty XRay to Find Java Memory Leaks on a Live JVM?&lt;/li>
&lt;li>FAQ&lt;/li>
&lt;/ul></description><pic>/header-images/xray-java-mem.jpg</pic><private>false</private><tags>openresty-xray java memory</tags></item><item><title>When a "Black Box" Plugin Consumes 45% CPU: How We Pinpointed Lua Line 93 Without Source Code</title><link>https://blog.openresty.com/en/xray-rsa-cpu/</link><pubDate>2025-11-10T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-rsa-cpu/</guid><description>&lt;ul>
&lt;li>When perf Meets the Black Box&lt;/li>
&lt;li>From Sampling to Full-Stack Dynamic Tracing&lt;/li>
&lt;li>Uncovering the Evidence Trail&lt;/li>
&lt;li>From What happene to Why&lt;/li>
&lt;li>Summary&lt;/li>
&lt;/ul></description><pic>/header-images/xray-rsa-cpu.jpg</pic><private>false</private><tags>case-study openresty-xray rsa</tags></item><item><title>OpenResty Edge Version 25.9.17 Now Available</title><link>https://blog.openresty.com/en/edge-ann-250917/</link><pubDate>2025-10-31T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-ann-250917/</guid><description>&lt;ul>
&lt;li>Core Highlights&lt;/li>
&lt;li>Enhanced Features &amp;amp; Increased Flexibility&lt;/li>
&lt;li>Improved Usability &amp;amp; Observability&lt;/li>
&lt;li>Key Fixes and Stability Enhancements&lt;/li>
&lt;li>How to Upgrade?&lt;/li>
&lt;/ul></description><pic>/header-images/company-logo.jpg</pic><private>false</private><tags>openresty-edge releases</tags></item><item><title>OpenResty XRay Version 25.10.11 Now Available</title><link>https://blog.openresty.com/en/xray-ann-251011/</link><pubDate>2025-10-31T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-ann-251011/</guid><description>&lt;ul>
&lt;li>Three Key Highlights&lt;/li>
&lt;li>Enhanced Diagnostic Accuracy and Stability&lt;/li>
&lt;li>Usability and Security Enhancements&lt;/li>
&lt;/ul></description><pic>/header-images/xray-logo.jpg</pic><private>false</private><tags>openresty-xray releases</tags></item><item><title>Gzip CPU Usage: Why Compression Level 6 Consumed 54% of Server CPU</title><link>https://blog.openresty.com/en/xray-gzip-cpu/</link><pubDate>2025-10-27T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/xray-gzip-cpu/</guid><description>&lt;ul>
&lt;li>How Gzip Compression Consumed 54% of CPU in Production&lt;/li>
&lt;li>Why Gzip CPU Usage Was So High: A Configuration-Level Diagnosis&lt;/li>
&lt;li>Quantifying Gzip and Brotli CPU Overhead&lt;/li>
&lt;li>From Guesswork to Data-Driven Compression Tuning&lt;/li>
&lt;/ul></description><pic>/header-images/xray-gzip-cpu.jpg</pic><private>false</private><tags>case-study openresty-xray gzip cpu</tags></item><item><title>Zstd Compression in OpenResty Edge: Faster, Lighter Than Gzip and Brotli</title><link>https://blog.openresty.com/en/edge-zstd/</link><pubDate>2025-10-20T00:00:00.000Z</pubDate><guid>https://blog.openresty.com/en/edge-zstd/</guid><description>&lt;ul>
&lt;li>The Evolution of Compression Algorithms&lt;/li>
&lt;li>What is Zstandard (zstd)&lt;/li>
&lt;li>Why Zstandard is Particularly Well-Suited for OpenResty Edge&lt;/li>
&lt;li>How to Enable Zstandard (Zstd) Compression in OpenResty Edge&lt;/li>
&lt;li>Zstd vs Brotli vs Gzip: Which Should You Serve?&lt;/li>
&lt;/ul></description><pic>/header-images/edge-zstd.jpg</pic><private>false</private><tags>tutorial openresty-edge zstd</tags></item></channel></rss>