Featured Articles

Photo by Yichun Zhang

How a Single "0" Took Down Bilibili — Every Server at 100% CPU, and Reboots Didn't Help

How a Single "0" Took Down Bilibili — Every Server at 100% CPU, and Reboots Didn't Help

Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives

Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives

Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives

Introduction to OpenResty XRay

Introduction to OpenResty XRay

Introduction to OpenResty XRay

Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build

Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build

Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build

Non-Invasive Java Profiler: Capture Method Arguments in Production Without a Java Agent

Non-Invasive Java Profiler: Capture Method Arguments in Production Without a Java Agent

Non-Invasive Java Profiler: Capture Method Arguments in Production Without a Java Agent

Photo by Philip Brown

The Wonderland of Dynamic Tracing (Part 1 of 3)

The Wonderland of Dynamic Tracing (Part 1 of 3)

Photo by Jose G. Ortega Castro

How OpenResty and Nginx Shared Memory Zones Consume RAM

How OpenResty and Nginx Shared Memory Zones Consume RAM

Photo by Harrison Broadbent

Nginx Memory Usage Explained: Where the RAM Actually Goes

Nginx Memory Usage Explained: Where the RAM Actually Goes

OpenResty XRay reduce your CPU usage up to  90%
OpenResty XRay reduce your CPU usage up to 90%
Request free trial

Latest Articles

Minify HTML, CSS & JS Inside Nginx: OpenResty's 120 MB/s Streaming Minifiers

  • When You Can’t Touch the Build Pipeline
  • Why a Regex Won’t Cut It
  • Three Approaches That Almost Work
  • A Streaming FSM for Each Language, Compiled to Native Code
  • Five-Minute Setup: A Configuration Example
  • Four Things to Know Before Going Live
  • When You Can’t Touch the Build Pipeline
  • Why a Regex Won’t Cut It
  • Three Approaches That Almost Work
  • A Streaming FSM for Each Language, Compiled to Native Code
  • Five-Minute Setup: A Configuration Example
  • Four Things to Know Before Going Live

Binary Vulnerability Scanning: Catch Backported Patches, Cut False Positives

  • Why Version-Matching Vulnerability Scanning Fails: Three Compounding Costs
  • How OpenResty XRay’s Binary Vulnerability Scanning Works: The Evidence-First Model
  • Case Study: Binary Vulnerability Scanning on Rocky Linux with Dual OpenSSL Versions
  • From Alert Fatigue to Precision: A Sustainable Vulnerability Scanning Practice
  • Why Version-Matching Vulnerability Scanning Fails: Three Compounding Costs
  • How OpenResty XRay’s Binary Vulnerability Scanning Works: The Evidence-First Model
  • Case Study: Binary Vulnerability Scanning on Rocky Linux with Dual OpenSSL Versions
  • From Alert Fatigue to Precision: A Sustainable Vulnerability Scanning Practice

P99 Latency in a D Service Cut 73%: Conservative GC Meets an O(n) Query Under Load

  • Analyzing GC Traps and Business Hotspots in the Flame Graph
  • Optimization Roadmap: Why Sequence Is More Important Than Action
  • Conclusion: From Code Logic to Runtime Reality
  • Analyzing GC Traps and Business Hotspots in the Flame Graph
  • Optimization Roadmap: Why Sequence Is More Important Than Action
  • Conclusion: From Code Logic to Runtime Reality

End-to-End Client Real IP Passthrough in OpenResty Edge

  • Use Cases and Topology
  • IP Passthrough Methods Overview
  • OpenResty Edge Configuration
  • Key Variables
  • Page Rules
  • Verification
  • Use Cases and Topology
  • IP Passthrough Methods Overview
  • OpenResty Edge Configuration
  • Key Variables
  • Page Rules
  • Verification

How OpenResty XRay Enables Full-Stack Dynamic Tracing in Production

  • Where Do Existing Dynamic Tracing Frameworks Fall Short in Production?
  • How Did OpenResty XRay Rethink Dynamic Tracing at the Architecture Level?
  • What Is a Full-Stack Flame Graph and How Do You Use It to Diagnose Performance Bottlenecks?
  • How Is OpenResty XRay Expanding Its Observability Coverage Over Time?
  • Further Reading and Real-World Case Studie
  • Where Do Existing Dynamic Tracing Frameworks Fall Short in Production?
  • How Did OpenResty XRay Rethink Dynamic Tracing at the Architecture Level?
  • What Is a Full-Stack Flame Graph and How Do You Use It to Diagnose Performance Bottlenecks?
  • How Is OpenResty XRay Expanding Its Observability Coverage Over Time?
  • Further Reading and Real-World Case Studie

OpenResty Edge: Private CDN, Universal Gateway & WAF in One Platform

  • What Is OpenResty Edge? Architecture Overview
  • OpenResty Edge vs. Traditional Stack: 4 Problems Solved
  • Universal Gateway & Load Balancing: Dynamic Routing for Microservices
  • Real-World Case Studies: OTA, News, and SaaS Deployments
  • What Is OpenResty Edge? Architecture Overview
  • OpenResty Edge vs. Traditional Stack: 4 Problems Solved
  • Universal Gateway & Load Balancing: Dynamic Routing for Microservices
  • Real-World Case Studies: OTA, News, and SaaS Deployments

Introduction to OpenResty XRay

  • Core Philosophy: A Tracing Engine Built for the Unknown
  • Turning Noise into Signal: How XRay Demystifies Production Issues
  • Empowering Engineering Teams in Cloud-Native Reality
  • Built on a Robust, Open Technological Foundatione
  • Real-World Success Stories
  • Core Philosophy: A Tracing Engine Built for the Unknown
  • Turning Noise into Signal: How XRay Demystifies Production Issues
  • Empowering Engineering Teams in Cloud-Native Reality
  • Built on a Robust, Open Technological Foundatione
  • Real-World Success Stories

lua-resty-kafka Blocking Your Nginx Workers? Meet lua-resty-kafka-fast

  • Three Common Anti-Patterns We See in Production
  • What is lua-resty-kafka-fast
  • lua-resty-kafka vs lua-resty-kafka-fast
  • What This Changes at the Architecture Level
  • FAQ
  • Three Common Anti-Patterns We See in Production
  • What is lua-resty-kafka-fast
  • lua-resty-kafka vs lua-resty-kafka-fast
  • What This Changes at the Architecture Level
  • FAQ

Nginx Reverse Proxy QPS Dropped 15x: A Missing upstream keepalive and an -O0 Debug Build

  • A 15x Slower Nginx Reverse Proxy — and No Errors in the Logs
  • Flame Graphs Expose a Connection Storm: The Missing upstream keepalive
  • The Remaining 10% Gap: Baseline Comparison Points to the Compiler
  • How an -O0 Debug Build Cost Us 10% of Performance
  • A 15x Slower Nginx Reverse Proxy — and No Errors in the Logs
  • Flame Graphs Expose a Connection Storm: The Missing upstream keepalive
  • The Remaining 10% Gap: Baseline Comparison Points to the Compiler
  • How an -O0 Debug Build Cost Us 10% of Performance

TLS Session Resumption in Nginx Clusters: Zero-Downtime Key Rotation

  • Why Session Ticket Key Management Is Harder Than It Looks
  • How lua-resty-tls-session Rotates Session Ticket Keys Without Restarts
  • Comparing the Three Approaches
  • Quantifying Latency Reduction and Uptime Gains
  • FAQ
  • Why Session Ticket Key Management Is Harder Than It Looks
  • How lua-resty-tls-session Rotates Session Ticket Keys Without Restarts
  • Comparing the Three Approaches
  • Quantifying Latency Reduction and Uptime Gains
  • FAQ

WAF Benchmark: OpenResty Edge 3.7–10x Faster than ModSecurity (208 Rules)

  • The Benchmark: 208 WAF Rules on One CPU Core
  • Why Rule Count Doesn’t Have to Hurt WAF Performance
  • How to Implement a WAF at the Edge: Four Steps
  • FAQ: WAF performance
  • The Benchmark: 208 WAF Rules on One CPU Core
  • Why Rule Count Doesn’t Have to Hurt WAF Performance
  • How to Implement a WAF at the Edge: Four Steps
  • FAQ: WAF performance

Fix LuaJIT RSS Memory Leak in OpenResty: Stop OOM Kills Without Restarts

  • What Is the LuaJIT Pseudo Memory Leak?
  • Diagnosing the Problem with Real Production Data
  • Why Standard Fixes Don’t Work
  • How LuaJIT-plus Fixes This at the Allocator Level
  • Production Impact After Deployment
  • What Is the LuaJIT Pseudo Memory Leak?
  • Diagnosing the Problem with Real Production Data
  • Why Standard Fixes Don’t Work
  • How LuaJIT-plus Fixes This at the Allocator Level
  • Production Impact After Deployment

How We Pinpointed a 244ms Latency Spike in a 500k QPS OpenResty Gateway

  • Latency Spikes and CPU Waste Hidden Beneath Healthy Averages
  • Troubleshooting OpenResty Latency Without Code Changes or Restarts
  • The Results: Latency Spikes Eliminated, 30% Lower CPU Usage
  • Frequently Asked Questions
  • Latency Spikes and CPU Waste Hidden Beneath Healthy Averages
  • Troubleshooting OpenResty Latency Without Code Changes or Restarts
  • The Results: Latency Spikes Eliminated, 30% Lower CPU Usage
  • Frequently Asked Questions
Contact us

OpenResty open-source community workspace

Please join us here and share your thoughts and questions with us, we can't wait to see you there!


limited time offer

Request TRIAL today and receive a diagnostic REPORT
Learn more

Love to hear from you, Get in touch 👋

Message was sent successfully!

Our Team will get back to you within 24 hours.
x