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

OpenResty Edge Static Files: Serve Assets from the Gateway with No Back-to-Source

  • Upload static files to the Global Static File storage
  • Create a page rule to serve them directly from the gateway
  • Test exact match, directory prefix, and ignored prefix
  • Upload static files to the Global Static File storage
  • Create a page rule to serve them directly from the gateway
  • Test exact match, directory prefix, and ignored prefix

OpenResty Edge TCP Load Balancing: Proxy TCP Services Without Editing Nginx Config

  • Create a TCP (stream) application in OpenResty Edge
  • Add an upstream and page rule for TCP load balancing
  • Test the TCP proxy by connecting to MySQL through an edge node
  • Frequently asked questions
  • Create a TCP (stream) application in OpenResty Edge
  • Add an upstream and page rule for TCP load balancing
  • Test the TCP proxy by connecting to MySQL through an edge node
  • Frequently asked questions

OpenResty Edge Error Logs: View Application, Global & Gateway Server Logs

  • How to view application error logs in OpenResty Edge
  • Filtering error logs by Request ID, gateway, server, and log level
  • The three types of global error logs (Global, Admin Site, Log Server)
  • How to check the error.log file on gateway and Admin servers
  • How to view application error logs in OpenResty Edge
  • Filtering error logs by Request ID, gateway, server, and log level
  • The three types of global error logs (Global, Admin Site, Log Server)
  • How to check the error.log file on gateway and Admin servers

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 Manage Kubernetes Upstreams in OpenResty Edge as Pods Scale

  • How to create and use Kubernetes upstream
    • Create Kubernetes cluster
    • Create Kubernetes upstream
    • Create a page rule that uses Kubernetes upstream
    • Test: scale the pods and watch the upstream auto-update
  • How to create and use Kubernetes upstream
    • Create Kubernetes cluster
    • Create Kubernetes upstream
    • Create a page rule that uses Kubernetes upstream
    • Test: scale the pods and watch the upstream auto-update

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 gRPC Proxy: Distributed Reverse Proxy & Load Balancer with TLS Termination

  • Prepare a sample gRPC server and test it with grpcurl
  • Add the gRPC server as an upstream and enable the gRPC proxy in a page rule
  • Terminate TLS at the gateway and verify the gRPC proxy end to end
  • Prepare a sample gRPC server and test it with grpcurl
  • Add the gRPC server as an upstream and enable the gRPC proxy in a page rule
  • Terminate TLS at the gateway and verify the gRPC proxy end to end

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

EdgeLang Tutorial: How to Write Gateway & WAF Rules in OpenResty Edge

  • How EdgeLang Compiles Rules for Speed
  • How to Write an EdgeLang Page Rule (URL Redirect Example)
  • Test the EdgeLang Rule with curl
  • Modify an EdgeLang Rule: Exact vs. Prefix Match
  • How to Write WAF Rules in EdgeLang
  • EdgeLang User Manual and More Examples
  • FAQ
  • How EdgeLang Compiles Rules for Speed
  • How to Write an EdgeLang Page Rule (URL Redirect Example)
  • Test the EdgeLang Rule with curl
  • Modify an EdgeLang Rule: Exact vs. Prefix Match
  • How to Write WAF Rules in EdgeLang
  • EdgeLang User Manual and More Examples
  • FAQ

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
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