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

How to Enable Sticky Cookies in OpenResty Edge (Session Affinity)

  • How sticky cookies keep session affinity in OpenResty Edge
  • Enable sticky cookies for an upstream (server-level)
  • Test that every request hits the same backend
  • Disable sticky cookies and return to round robin
  • Test again and watch traffic spread across backends
  • Frequently asked questions
  • How sticky cookies keep session affinity in OpenResty Edge
  • Enable sticky cookies for an upstream (server-level)
  • Test that every request hits the same backend
  • Disable sticky cookies and return to round robin
  • Test again and watch traffic spread across backends
  • Frequently asked questions

How to deploy the on-premises version of OpenResty XRay on Microsoft's Azure cloud

  • Create a subscription and a resource group
  • Create the Azure Kubernetes service
  • Prepare the environment variables
  • Log in to Azure from the command line
  • Create the namespace and secret for Kubernetes
  • Create the Azure Disk
  • Update the configuration file for the persistent volume
  • Update the Kubernetes configuration file
  • Create the persistent volume
  • Deploy the Kubernetes service
  • Configure the application gateway
  • Create a subscription and a resource group
  • Create the Azure Kubernetes service
  • Prepare the environment variables
  • Log in to Azure from the command line
  • Create the namespace and secret for Kubernetes
  • Create the Azure Disk
  • Update the configuration file for the persistent volume
  • Update the Kubernetes configuration file
  • Create the persistent volume
  • Deploy the Kubernetes service
  • Configure the application gateway

OpenResty Edge WAF: Enable, Test, and Block Attacks

  • Enable the WAF for an Application in Log-Only Mode
  • Send a Test Attack and Review the WAF Logs
  • Disable and Re-enable Individual WAF Rules
  • Add a WAF Whitelist to Save CPU Cycles
  • Return 403 on a WAF Hit: Sensitivity and Risk-Score Thresholds
  • Verify the 403 Block in the WAF Logs
  • Create Your Own WAF Rule Set in EdgeLang
  • FAQ: WAF on OpenResty
  • Enable the WAF for an Application in Log-Only Mode
  • Send a Test Attack and Review the WAF Logs
  • Disable and Re-enable Individual WAF Rules
  • Add a WAF Whitelist to Save CPU Cycles
  • Return 403 on a WAF Hit: Sensitivity and Risk-Score Thresholds
  • Verify the 403 Block in the WAF Logs
  • Create Your Own WAF Rule Set in EdgeLang
  • FAQ: WAF on OpenResty

The EdgeLang DSL in OpenResty Edge

  • Introduction to Edgelang
  • Add a page rule defined using Edgelang
  • Test
  • Modify the Edgelang definition of the page rule
  • Define WAF rules using Edgelang
  • Edgelang user manual
  • Introduction to Edgelang
  • Add a page rule defined using Edgelang
  • Test
  • Modify the Edgelang definition of the page rule
  • Define WAF rules using Edgelang
  • Edgelang user manual

OpenResty 1.21.4.2 RC1 is out

  • Source package
  • Windows binary packages
  • Version highlights
  • Source package
  • Windows binary packages
  • Version highlights

The Wonderland of Dynamic Tracing (Part 1 of 3)

  • Dynamic Tracing
  • What It Is
  • Too Good to be True?
  • How it Works
  • Still Having Doubts?
  • The Advantages of Dynamic Tracing
  • DTrace
  • SystemTap
  • DTrace and SystemTap
  • Applications of SystemTap in Production
Photo by Philip Brown
  • Dynamic Tracing
  • What It Is
  • Too Good to be True?
  • How it Works
  • Still Having Doubts?
  • The Advantages of Dynamic Tracing
  • DTrace
  • SystemTap
  • DTrace and SystemTap
  • Applications of SystemTap in Production

The Wonderland of Dynamic Tracing (Part 3 of 3)

  • Dynamic Tracing Support in Linux Kernels
  • Hardware Tracing
  • Analyze Remains of Dead Process
  • Traditional Debugging Technologies
  • A Messy World of Debugging
  • OpenResty XRay
Photo by L N
  • Dynamic Tracing Support in Linux Kernels
  • Hardware Tracing
  • Analyze Remains of Dead Process
  • Traditional Debugging Technologies
  • A Messy World of Debugging
  • OpenResty XRay

New FAQ Doc for OpenResty XRay

We recently prepared a new FAQ document for OpenResty XRay
Photo by Yichun Zhang
We recently prepared a new FAQ document for OpenResty XRay

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

  • The Platform Behind Hundreds of Millions of Streams
  • The July 2021 Bilibili Outage: When Rebooting Doesn’t Help
  • Finding the Root Cause with CPU Flame Graphs
  • One Type Mismatch, Entire System Down
Photo by Yichun Zhang
  • The Platform Behind Hundreds of Millions of Streams
  • The July 2021 Bilibili Outage: When Rebooting Doesn’t Help
  • Finding the Root Cause with CPU Flame Graphs
  • One Type Mismatch, Entire System Down

Nginx Regex Performance: Find Slow Patterns with Dynamic Tracing

  • Prerequisites and Setup
  • Locate Slow Regex with CPU Flame Graphs
  • Performance After Regex Optimization
  • Limit PCRE Backtracking with lua_regex_match_limit
  • Non-Backtracking Engines: RE2 and OpenResty Regex
  • Lua Built-in Patterns as a Regex Alternative
  • Trace Regex Performance in Docker and Kubernetes
  • How the Dynamic-Tracing Tools Work
  • Tool Overhead: Zero Impact When Not Sampling
  • FAQ: Nginx Regex Performance
  • Prerequisites and Setup
  • Locate Slow Regex with CPU Flame Graphs
  • Performance After Regex Optimization
  • Limit PCRE Backtracking with lua_regex_match_limit
  • Non-Backtracking Engines: RE2 and OpenResty Regex
  • Lua Built-in Patterns as a Regex Alternative
  • Trace Regex Performance in Docker and Kubernetes
  • How the Dynamic-Tracing Tools Work
  • Tool Overhead: Zero Impact When Not Sampling
  • FAQ: Nginx Regex Performance

Listing Loaded Lua Modules in OpenResty or Nginx Processes

  • System Environment
  • Names of Loaded Lua Modules
  • Running Directly in the Web Console
  • Tracing Applications inside Containers
  • How The Tools are Implemented
  • The Overhead of the Tools
Photo by Yichun Zhang
  • System Environment
  • Names of Loaded Lua Modules
  • Running Directly in the Web Console
  • Tracing Applications inside Containers
  • How The Tools are Implemented
  • The Overhead of the Tools

Nginx High CPU Usage: Find Which Requests Consume the Most CPU

  • Prerequisites and Environment Setup
  • Find Which Request Hostname Uses the Most CPU
  • Find Which Request URI Uses the Most CPU
  • Digging Deeper: Why Some Hostnames Use More CPU
  • Running the Tools in the Web Console
  • Tracing Nginx CPU Usage Inside Containers
  • How the CPU Profiling Tools Work
  • The Overhead of the Profiling Tools
  • Frequently Asked Questions
Photo by Yichun Zhang
  • Prerequisites and Environment Setup
  • Find Which Request Hostname Uses the Most CPU
  • Find Which Request URI Uses the Most CPU
  • Digging Deeper: Why Some Hostnames Use More CPU
  • Running the Tools in the Web Console
  • Tracing Nginx CPU Usage Inside Containers
  • How the CPU Profiling Tools Work
  • The Overhead of the Profiling Tools
  • 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