OpenResty (NGINX + Lua)

What Is the Difference Between OpenResty and NGINX?

OpenResty (NGINX + Lua)

September 9, 2022

What Is the Difference Between OpenResty and NGINX?

What is OpenResty and why is OpenResty used by so many companies nowadays? Read this post to learn its dynamic and non-blocking feature.

OpenRestyNGINXLua
Your First OpenResty Program: Hello World

OpenResty (NGINX + Lua)

September 9, 2022

Your First OpenResty Program: Hello World

Follow this post to implement Hello World in OpenResty!

Subprojects Behind OpenResty

OpenResty (NGINX + Lua)

September 12, 2022

Subprojects Behind OpenResty

This post introduces OpenResty's directory structure and related tools, such as NGINX C Modules, test-nginx, lua-resty projects, and more.

How to Manage Third-Party Packages of OpenResty Through LuaRocks and OPM?

OpenResty (NGINX + Lua)

September 17, 2022

How to Manage Third-Party Packages of OpenResty Through LuaRocks and OPM?

We can use OPM or LuaRocks to manage OpenResty third-party packages. Learn more by reading this article.

Knowledge of NGINX Used in OpenResty

OpenResty (NGINX + Lua)

September 17, 2022

Knowledge of NGINX Used in OpenResty

Nginx provides the Master-Worker model and request execution phases. By reading this post, you can better grasp the basics of Nginx.

Getting Started With Lua

OpenResty (NGINX + Lua)

September 23, 2022

Getting Started With Lua

Lua is a lightweight and high-level programming language designed primarily for embedded use in applications. Getting started with Lua from here!

What Is the Difference Between LuaJIT And Standard Lua?

OpenResty (NGINX + Lua)

September 23, 2022

What Is the Difference Between LuaJIT And Standard Lua?

LuaJIT is a Just-In-Time Compiler (JIT) for the Lua programming language, what makes LuaJIT faster than Lua? What's the difference between them?

Why Does lua-resty-core Perform Better?

OpenResty (NGINX + Lua)

September 30, 2022

Why Does lua-resty-core Perform Better?

The lua-resty-core is a new FFI-based API for lua-nginx-module, which provides higher performance. Learn more from this post.

The JIT Compiler's Drawback: Why Avoid NYI?

OpenResty (NGINX + Lua)

September 30, 2022

The JIT Compiler's Drawback: Why Avoid NYI?

LuaJIT has several not yet implemented (LuaJIT NYI) features, learn them well to write high performance Lua codes.

What is table and metatable in Lua?

OpenResty (NGINX + Lua)

October 11, 2022

What is table and metatable in Lua?

Table is the only data structuring mechanism in Lua. We can use tables to represent ordinary arrays, symbol tables, sets, records, queues, and other data structures. Learn more from this post.

Top Tips: Identifying Unique Concepts and Pitfalls in Lua

OpenResty (NGINX + Lua)

October 12, 2022

Top Tips: Identifying Unique Concepts and Pitfalls in Lua

Here are some unique Lua concepts, e.g., Weak Table, Closure, and upvalue.

What if there is a conflict between Lua rules and NGINX configuration?

OpenResty (NGINX + Lua)

October 13, 2022

What if there is a conflict between Lua rules and NGINX configuration?

Some Q&A about OpenResty, API Gateway, and Lua.

What makes OpenResty so special

OpenResty (NGINX + Lua)

October 14, 2022

What makes OpenResty so special

OpenResty is built with NGINX and LuaJIT, getting started from here to learn its basic concepts and how it works.

Documentation and Test Cases: Powerful Tools for Solving OpenResty Development Problems

OpenResty (NGINX + Lua)

October 23, 2022

Documentation and Test Cases: Powerful Tools for Solving OpenResty Development Problems

OpenResty not only provides detailed documentation with API parameters, return value typing, and sample codes but also is tested thoroughly with test cases, which are helpful to help developers use OpenResty.

OpenResty Is The Enhanced NGINX With Dynamic Requests and Responses

OpenResty (NGINX + Lua)

October 23, 2022

OpenResty Is The Enhanced NGINX With Dynamic Requests and Responses

OpenResty is the enhanced NGINX with dynamic requests and responses, and this article explains the APIs for manipulating Request and Response in OpenResty, such as "ngx.req.set_method", "ngx.req.set_uri_args", "ngx.req.set_header", etc.

Communication magic between NGINX workers: one of the most important data structures `shared dict`

OpenResty (NGINX + Lua)

October 27, 2022

Communication magic between NGINX workers: one of the most important data structures shared dict

shared dict is an important data structure in NGINX and OpenResty.

The core of OpenResty: cosocket

OpenResty (NGINX + Lua)

October 28, 2022

The core of OpenResty: cosocket

The cosocket is the basis of various lua-resty-* non-blocking libraries. This article introduces the basic concepts and common APIs of cosocket.

Beyond the Web Server: Privileged Process and Timer Tasks

OpenResty (NGINX + Lua)

November 3, 2022

Beyond the Web Server: Privileged Process and Timer Tasks

Privileged Process and Timer Tasks are important features that distinguish OpenResty from NGINX and other web servers

Introduction of Common APIs in OpenResty

OpenResty (NGINX + Lua)

November 4, 2022

Introduction of Common APIs in OpenResty

This article will introduce you to the use of OpenResty common APIs for time manipulation, regular expressions, and other common issues.

Handling Layer 4 of traffic and Implementing Memcached Server by OpenResty

OpenResty (NGINX + Lua)

November 10, 2022

Handling Layer 4 of traffic and Implementing Memcached Server by OpenResty

OpenResty is easy to implement Memcached Server using the stream module provided by NGINX, which can handle layer 4 of traffic.

OpenResty FAQ | Privileged Process Permission, Execution Phase, and more

OpenResty (NGINX + Lua)

November 11, 2022

OpenResty FAQ | Privileged Process Permission, Execution Phase, and more

The NGINX + Lua (OpenResty) FAQ answers questions about privileged process permissions, phasing and debugging, the practice of ngx.exit, variables, and race condition.

Roadblock in Contributing Code: `test::nginx`

OpenResty (NGINX + Lua)

November 17, 2022

Roadblock in Contributing Code: test::nginx

test::nginx is a DSL used for TDD in OpenResty, and can be used for NGINX, HTTP testing

Testing Methods of `test::nginx`: Configuration, Sending Requests, and Handling Responses

OpenResty (NGINX + Lua)

November 18, 2022

Testing Methods of test::nginx: Configuration, Sending Requests, and Handling Responses

This article describes how to use test::nginx to send requests and handle responses in a test case.

Little-Known Usage of `test::nginx`

OpenResty (NGINX + Lua)

November 24, 2022

Little-Known Usage of test::nginx

test::nginx has features such as preprocessor, custom functions, shuffle, reindex

Accurate Performance Testing with `wrk`

OpenResty (NGINX + Lua)

November 25, 2022

Accurate Performance Testing with wrk

This article describes the features of the performance testing tool `wrk` and how to use it for efficient and accurate performance testing

OpenResty FAQ | Network Structure for Testing, SSL-related Features, DSL, `ab` Tool

OpenResty (NGINX + Lua)

December 1, 2022

OpenResty FAQ | Network Structure for Testing, SSL-related Features, DSL, ab Tool

This article describes how to build a test network environment, test::nginx support for SSL, DSL, and the `ab` tool.

Non-blocking I/O - The key to improving OpenResty performance

OpenResty (NGINX + Lua)

December 2, 2022

Non-blocking I/O - The key to improving OpenResty performance

Avoid using blocking I/O operations in OpenResty as they affect performance. Some often misused operations are: executing external commands, handling disk I/O and using lusockets

Advantages and Disadvantages of `string` in OpenResty

OpenResty (NGINX + Lua)

December 8, 2022

Advantages and Disadvantages of string in OpenResty

This article introduces the optimization techniques to be followed in OpenResty: processing requests short, simple, and fast and avoiding intermediate data generation. It also shows the optimization techniques for string

Tips for 10x Performance Improvement in OpenResty: `Table` Data Structure

OpenResty (NGINX + Lua)

December 9, 2022

Tips for 10x Performance Improvement in OpenResty: Table Data Structure

In openresty, table has a significant impact on performance. This article describes how to optimize performance by manually maintaining subscripts, reusing table, and tabelpool.

OpenResty Coding Style Guide

OpenResty (NGINX + Lua)

December 15, 2022

OpenResty Coding Style Guide

OpenResty style guide contains general rules about "how to write" OpenResty, Lua, NGINX code

Various Debugging Methods in OpenResty

OpenResty (NGINX + Lua)

December 16, 2022

Various Debugging Methods in OpenResty

This article describes how to debug in OpenResty using breakpoints and print logs, Binary Search Algorithm and Comment, dynamic debugging, flame graph, etc.

Keys to High Performance: `shared dict` and `lru` Cache

OpenResty (NGINX + Lua)

December 22, 2022

Keys to High Performance: shared dict and lru Cache

This article introduces you to the usage scenarios, usage, and implementation principles of both `shared dict` and `lru` cache in Openresty.

`systemtap-toolkit` and `stapxx`: How to Use Data to Solve Difficult Problems?

OpenResty (NGINX + Lua)

December 22, 2022

systemtap-toolkit and stapxx: How to Use Data to Solve Difficult Problems?

The systemtap-based wrapped toolsets: systemtap-toolkit and stapxx can be used to solve problems for real-time analysis and diagnosis of NGINX and OpenResty.

How to Avoid Cache Stampede?

OpenResty (NGINX + Lua)

December 29, 2022

How to Avoid Cache Stampede?

We can use active update cache, lua-resty-lock, lua-resty-shcache, and NGINX directives to resolve cache stampedes in NGINX, OpenResty.

`lua-resty-*` Encapsulation Releases Developers from Multi-Level Caching

OpenResty (NGINX + Lua)

December 30, 2022

lua-resty-* Encapsulation Releases Developers from Multi-Level Caching

This article introduces the implementation principles and usage of two cache encapsulation libraries `lua-resty-memcached-shdict` and `lua-resty-mlcache`

How to Deal with Bursty Traffic: Leaky Bucket and Token Bucket Algorithms

OpenResty (NGINX + Lua)

January 5, 2023

How to Deal with Bursty Traffic: Leaky Bucket and Token Bucket Algorithms

This article explains how to use the leaky bucket and the token bucket algorithms in NGINX and OpenResty to solve bursty traffic.

Dynamic Rate-Limiting in OpenResty

OpenResty (NGINX + Lua)

January 6, 2023

Dynamic Rate-Limiting in OpenResty

Let's learn how to use the implementation of `limit-req`, `limit-count`, `limit-conn`, and `limit.traffic` in `lua-resty-limit-traffic` and conduct rate limiting with them.

OpenResty's Killer Feature: Dynamic

OpenResty (NGINX + Lua)

January 12, 2023

OpenResty's Killer Feature: Dynamic

Openresty enables FaaS, Edge Computing, Dynamic Upstream, and more with the dynamic features provided by LuaJIT

Three Commonly-Used Lua Resty Libraries in OpenResty

OpenResty (NGINX + Lua)

January 13, 2023

Three Commonly-Used Lua Resty Libraries in OpenResty

Let's learn the commonly used Lua Resty libraries in OpenResty: `lua-resty-ngxvar`, `lua-rapidjson`, and `lua-resty-worker-events`.

OpenResty FAQ | Dynamic Load, NYI, and Caching of Shared Dict

OpenResty (NGINX + Lua)

January 19, 2023

OpenResty FAQ | Dynamic Load, NYI, and Caching of Shared Dict

This article explains dynamic loading, blocking operations, NYI, dynamic upstream, and caching of shared dictionaries.

Part 1: How to Build a Microservices API gateway using OpenResty

OpenResty (NGINX + Lua)

January 20, 2023

Part 1: How to Build a Microservices API gateway using OpenResty

This article introduces the role, core components, and concepts of microservice API gateway.

Part 2: How to Build a Microservices API gateway using OpenResty

OpenResty (NGINX + Lua)

February 2, 2023

Part 2: How to Build a Microservices API gateway using OpenResty

The technical selection of the API Gateway's four core components: storage, routing, schema, and plugins, are introduced respectively.

Part 3: How to Build a Microservices API Gateway Using OpenResty

OpenResty (NGINX + Lua)

February 3, 2023

Part 3: How to Build a Microservices API Gateway Using OpenResty

Minimum examples of how to run an API gateway via NGINX configuration and initialization, matching routes and plugins, loading plugins, and writing plugins are introduced.

OpenResty FAQ | How OpenResty Is Used in Practice

OpenResty (NGINX + Lua)

February 10, 2023

OpenResty FAQ | How OpenResty Is Used in Practice

This article describes how OpenResty is used in practice, OpenResty database encapsulation, OpenResty web framework, and other issues.

API7.ai Logo

API Management for Modern Architectures with Edge, API Gateway, Kubernetes, and Service Mesh.

Product

Documentation

SOC2 Type IRed Herring

Copyright © HONG KONG APISEVEN LIMITED. 2019 – 2023. Apache, Apache APISIX, APISIX, and associated open source project names are trademarks of the Apache Software Foundation