---
title: "Posts by \"NGINX\" - API7.ai"
description: "Latest blog from API7.ai on \"NGINX\""
url: "https://api7.ai/tags/nginx"
---

# All posts tagged

## "NGINX"

[![API Gateway with NGINX: Layering, Ownership, and Migration Patterns](https://static.api7.ai/uploads/2026/09/24/Wf1esKRZ_api-gateway-guide-65.webp)](https://api7.ai/learning-center/api-gateway-guide/api-gateway-nginx)

API Gateway Guide

September 14, 2026

#### [API Gateway with NGINX: Layering, Ownership, and Migration Patterns](https://api7.ai/learning-center/api-gateway-guide/api-gateway-nginx)

Decide whether NGINX should remain the edge, become a transport proxy, or be replaced by an API gateway without breaking client IP, TLS, retries, or rollback.

[API Gateway](https://api7.ai/tags/api-gateway)

[NGINX](https://api7.ai/tags/nginx)

[Migration](https://api7.ai/tags/migration)

[![Apache APISIX vs NGINX](https://static.api7.ai/uploads/2024/12/25/BgJbsisC_apisix-vs-nginx.png)](https://api7.ai/blog/apache-apisix-vs-nginx)

Technology

February 2, 2024

#### [Apache APISIX vs NGINX](https://api7.ai/blog/apache-apisix-vs-nginx)

Explore the performance disparity between NGINX and APISIX in web servers, based on real-world stress tests.

[NGINX](https://api7.ai/tags/nginx)

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[![OpenResty FAQ | How OpenResty Is Used in Practice](https://static.api7.ai/uploads/2023/02/12/jbv9M0zi_Hello%20World%20in%20OpenResty%20%283%29.png)](https://api7.ai/learning-center/openresty/faq-5)

OpenResty (NGINX + Lua)

February 10, 2023

#### [OpenResty FAQ | How OpenResty Is Used in Practice](https://api7.ai/learning-center/openresty/faq-5)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Part 3: How to Build a Microservices API Gateway Using OpenResty](https://static.api7.ai/uploads/2023/02/07/3XJXY9Jy_45.png)](https://api7.ai/learning-center/openresty/how-to-build-a-microservices-api-gateway-part-3)

OpenResty (NGINX + Lua)

February 3, 2023

#### [Part 3: How to Build a Microservices API Gateway Using OpenResty](https://api7.ai/learning-center/openresty/how-to-build-a-microservices-api-gateway-part-3)

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](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Part 2: How to Build a Microservices API gateway using OpenResty](https://static.api7.ai/uploads/2023/02/07/FDLX3VMh_44.png)](https://api7.ai/learning-center/openresty/how-to-build-a-microservice-api-gateway-part-2)

OpenResty (NGINX + Lua)

February 2, 2023

#### [Part 2: How to Build a Microservices API gateway using OpenResty](https://api7.ai/learning-center/openresty/how-to-build-a-microservice-api-gateway-part-2)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Part 1: How to Build a Microservices API gateway using OpenResty](https://static.api7.ai/uploads/2023/02/07/FY0wz1b6_43.png)](https://api7.ai/learning-center/openresty/how-to-build-a-microservice-api-gateway-part-1)

OpenResty (NGINX + Lua)

January 20, 2023

#### [Part 1: How to Build a Microservices API gateway using OpenResty](https://api7.ai/learning-center/openresty/how-to-build-a-microservice-api-gateway-part-1)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![OpenResty FAQ | Dynamic Load, NYI, and Caching of Shared Dict](https://static.api7.ai/uploads/2023/01/28/JNIy07vr_Hello%20World%20in%20OpenResty%20%289%29.png)](https://api7.ai/learning-center/openresty/faq-4)

OpenResty (NGINX + Lua)

January 19, 2023

#### [OpenResty FAQ | Dynamic Load, NYI, and Caching of Shared Dict](https://api7.ai/learning-center/openresty/faq-4)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Three Commonly-Used Lua Resty Libraries in OpenResty](https://static.api7.ai/uploads/2023/01/15/sIYDRQAH_Hello%20World%20in%20OpenResty.png)](https://api7.ai/learning-center/openresty/lua-resty-libraries-in-openresty)

OpenResty (NGINX + Lua)

January 13, 2023

#### [Three Commonly-Used Lua Resty Libraries in OpenResty](https://api7.ai/learning-center/openresty/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](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![OpenResty's Killer Feature: Dynamic](https://static.api7.ai/uploads/2023/01/12/kluDFiQ6_Hello%20World%20in%20OpenResty%20%287%29.png)](https://api7.ai/learning-center/openresty/openresty-killer-feature-dynamic)

OpenResty (NGINX + Lua)

January 12, 2023

#### [OpenResty's Killer Feature: Dynamic](https://api7.ai/learning-center/openresty/openresty-killer-feature-dynamic)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Dynamic Rate-Limiting in OpenResty](https://static.api7.ai/uploads/2023/01/06/hkkLMlET_Hello%20World%20in%20OpenResty%20%2810%29.png)](https://api7.ai/learning-center/openresty/flexible-dynamic-rate-limiting)

OpenResty (NGINX + Lua)

January 6, 2023

#### [Dynamic Rate-Limiting in OpenResty](https://api7.ai/learning-center/openresty/flexible-dynamic-rate-limiting)

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](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![How to Deal with Bursty Traffic: Leaky Bucket and Token Bucket Algorithms](https://static.api7.ai/2023/01/05/63b6948f84a38.png)](https://api7.ai/learning-center/openresty/how-to-deal-with-bursty-traffic)

OpenResty (NGINX + Lua)

January 5, 2023

#### [How to Deal with Bursty Traffic: Leaky Bucket and Token Bucket Algorithms](https://api7.ai/learning-center/openresty/how-to-deal-with-bursty-traffic)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![\`lua-resty-\*\` Encapsulation Releases Developers from Multi-Level Caching](https://static.api7.ai/2022/12/30/63aeaa94b24c8.png)](https://api7.ai/learning-center/openresty/lua-resty-encapsulation-releases-developers-from-caching)

OpenResty (NGINX + Lua)

December 30, 2022

#### [`lua-resty-*` Encapsulation Releases Developers from Multi-Level Caching](https://api7.ai/learning-center/openresty/lua-resty-encapsulation-releases-developers-from-caching)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![How to Avoid Cache Stampede?](https://static.api7.ai/2022/12/30/63ae8b050ab9e.png)](https://api7.ai/learning-center/openresty/how-to-avoid-cache-stampede)

OpenResty (NGINX + Lua)

December 29, 2022

#### [How to Avoid Cache Stampede?](https://api7.ai/learning-center/openresty/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.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![\`systemtap-toolkit\` and \`stapxx\`: How to Use Data to Solve Difficult Problems?](https://static.api7.ai/2022/12/23/63a548149b18c.png)](https://api7.ai/learning-center/openresty/systemtap-toolkit-and-stapxx)

OpenResty (NGINX + Lua)

December 22, 2022

#### [`systemtap-toolkit` and `stapxx`: How to Use Data to Solve Difficult Problems?](https://api7.ai/learning-center/openresty/systemtap-toolkit-and-stapxx)

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.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Keys to High Performance: \`shared dict\` and \`lru\` Cache](https://static.api7.ai/2022/12/23/63a54acc69330.png)](https://api7.ai/learning-center/openresty/high-performance-keys-shared-dict-lru-cache)

OpenResty (NGINX + Lua)

December 22, 2022

#### [Keys to High Performance: `shared dict` and `lru` Cache](https://api7.ai/learning-center/openresty/high-performance-keys-shared-dict-lru-cache)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Various Debugging Methods in OpenResty](https://static.api7.ai/2022/12/15/639ade5d3f4f3.png)](https://api7.ai/learning-center/openresty/debugging-methods-openresty)

OpenResty (NGINX + Lua)

December 16, 2022

#### [Various Debugging Methods in OpenResty](https://api7.ai/learning-center/openresty/debugging-methods-openresty)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![OpenResty Coding Style Guide](https://static.api7.ai/2022/12/15/639adf5d98bc3.png)](https://api7.ai/learning-center/openresty/openresty-coding-style-guide)

OpenResty (NGINX + Lua)

December 15, 2022

#### [OpenResty Coding Style Guide](https://api7.ai/learning-center/openresty/openresty-coding-style-guide)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Tips for 10x Performance Improvement in OpenResty: \`Table\` Data Structure](https://static.api7.ai/2022/12/09/6392ea632a2b0.png)](https://api7.ai/learning-center/openresty/tips-10x-performance-improvement-openresty-table-data-structure)

OpenResty (NGINX + Lua)

December 9, 2022

#### [Tips for 10x Performance Improvement in OpenResty: `Table` Data Structure](https://api7.ai/learning-center/openresty/tips-10x-performance-improvement-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](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Advantages and Disadvantages of \`string\` in OpenResty](https://static.api7.ai/2022/12/09/6392eeb028c7f.png)](https://api7.ai/learning-center/openresty/advantages-and-disadvantages-of-string)

OpenResty (NGINX + Lua)

December 8, 2022

#### [Advantages and Disadvantages of `string` in OpenResty](https://api7.ai/learning-center/openresty/advantages-and-disadvantages-of-string)

This article introduces the optimization techniques to be followed in OpenResty: processing requests short, simple, and fast and avoiding intermediate data.

[OpenResty](https://api7.ai/tags/openresty)

[Lua](https://api7.ai/tags/lua)

[Nginx](https://api7.ai/tags/nginx)

[![Non-blocking I/O - The key to improving OpenResty performance](https://static.api7.ai/2022/12/05/638dce5075e0f.png)](https://api7.ai/learning-center/openresty/blocking-io)

OpenResty (NGINX + Lua)

December 2, 2022

#### [Non-blocking I/O - The key to improving OpenResty performance](https://api7.ai/learning-center/openresty/blocking-io)

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

[OpenResty](https://api7.ai/tags/openresty)

[Lua](https://api7.ai/tags/lua)

[Nginx](https://api7.ai/tags/nginx)

[![OpenResty FAQ | Network Structure for Testing, SSL-related Features, DSL, \`ab\` Tool](https://static.api7.ai/2022/12/02/63896c177fde1.png)](https://api7.ai/learning-center/openresty/faq-3)

OpenResty (NGINX + Lua)

December 1, 2022

#### [OpenResty FAQ | Network Structure for Testing, SSL-related Features, DSL, `ab` Tool](https://api7.ai/learning-center/openresty/faq-3)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Accurate Performance Testing with \`wrk\`](https://static.api7.ai/2022/11/25/63802abdc3b1b.png)](https://api7.ai/learning-center/openresty/performance-testing-tool-wrk)

OpenResty (NGINX + Lua)

November 25, 2022

#### [Accurate Performance Testing with `wrk`](https://api7.ai/learning-center/openresty/performance-testing-tool-wrk)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Little-Known Usage of \`test::nginx\`](https://static.api7.ai/2022/11/25/63802a7fb4697.png)](https://api7.ai/learning-center/openresty/little-known-usage-of-test-nginx)

OpenResty (NGINX + Lua)

November 24, 2022

#### [Little-Known Usage of `test::nginx`](https://api7.ai/learning-center/openresty/little-known-usage-of-test-nginx)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Testing Methods of test::nginx](https://static.api7.ai/2022/11/18/63772706eb042.png)](https://api7.ai/learning-center/openresty/all-inclusive-testing-methods-test-nginx)

OpenResty (NGINX + Lua)

November 18, 2022

#### [Testing Methods of test::nginx](https://api7.ai/learning-center/openresty/all-inclusive-testing-methods-test-nginx)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Roadblock in Contributing Code: \`test::nginx\`](https://static.api7.ai/2022/11/18/637726197c166.png)](https://api7.ai/learning-center/openresty/introduction-to-test-nginx)

OpenResty (NGINX + Lua)

November 17, 2022

#### [Roadblock in Contributing Code: `test::nginx`](https://api7.ai/learning-center/openresty/introduction-to-test-nginx)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![OpenResty FAQ | Privileged Process Permission, Execution Phase, and more](https://static.api7.ai/2022/11/13/6370ea6a2e791.png)](https://api7.ai/learning-center/openresty/faq-2)

OpenResty (NGINX + Lua)

November 11, 2022

#### [OpenResty FAQ | Privileged Process Permission, Execution Phase, and more](https://api7.ai/learning-center/openresty/faq-2)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Handling Layer 4 of traffic and Implementing Memcached Server by OpenResty](https://static.api7.ai/2022/11/11/636e1cd19ec42.png)](https://api7.ai/learning-center/openresty/implementing-memcached-server)

OpenResty (NGINX + Lua)

November 10, 2022

#### [Handling Layer 4 of traffic and Implementing Memcached Server by OpenResty](https://api7.ai/learning-center/openresty/implementing-memcached-server)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Introduction of Common APIs in OpenResty](https://static.api7.ai/2022/11/03/63638d7f43be0.png)](https://api7.ai/learning-center/openresty/introduction-openresty-common-apis)

OpenResty (NGINX + Lua)

November 4, 2022

#### [Introduction of Common APIs in OpenResty](https://api7.ai/learning-center/openresty/introduction-openresty-common-apis)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Beyond the Web Server: Privileged Process and Timer Tasks](https://static.api7.ai/2022/11/04/6364e41a51e18.png)](https://api7.ai/learning-center/openresty/privileged-process-and-timer-tasks)

OpenResty (NGINX + Lua)

November 3, 2022

#### [Beyond the Web Server: Privileged Process and Timer Tasks](https://api7.ai/learning-center/openresty/privileged-process-and-timer-tasks)

Explore OpenResty's advanced features like timer tasks, privileged processes, and non-blocking ngx.pipe for optimized NGINX performance and maintenance.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![The core of OpenResty: cosocket](https://static.api7.ai/2022/10/28/635bae79cdffd.png)](https://api7.ai/learning-center/openresty/the-core-of-openresty-cosocket)

OpenResty (NGINX + Lua)

October 28, 2022

#### [The core of OpenResty: cosocket](https://api7.ai/learning-center/openresty/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.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Communication magic between NGINX workers](https://static.api7.ai/2022/10/28/635ba9ebe407a.png)](https://api7.ai/learning-center/openresty/communication-magic-between-nginx-workers-shared-dict)

OpenResty (NGINX + Lua)

October 27, 2022

#### [Communication magic between NGINX workers](https://api7.ai/learning-center/openresty/communication-magic-between-nginx-workers-shared-dict)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![OpenResty Is The Enhanced NGINX With Dynamic Requests and Responses](https://static.api7.ai/2022/10/23/635548f2dd41e.png)](https://api7.ai/learning-center/openresty/handling-requests-responses-dynamically)

OpenResty (NGINX + Lua)

October 23, 2022

#### [OpenResty Is The Enhanced NGINX With Dynamic Requests and Responses](https://api7.ai/learning-center/openresty/handling-requests-responses-dynamically)

OpenResty is the enhanced NGINX with dynamic requests and responses, and this article explains the APIs for manipulating Request and Response in OpenResty.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Powerful Tools for Solving OpenResty Development Problems](https://static.api7.ai/2022/10/23/635548f2bbb62.png)](https://api7.ai/learning-center/openresty/openresty-documentation-and-test-cases)

OpenResty (NGINX + Lua)

October 23, 2022

#### [Powerful Tools for Solving OpenResty Development Problems](https://api7.ai/learning-center/openresty/openresty-documentation-and-test-cases)

OpenResty not only provides detailed documentation with API parameters, return value typing, and sample codes but also is tested thoroughly with test cases.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![What makes OpenResty so special](https://static.api7.ai/2022/10/14/634974e090ab4.png)](https://api7.ai/learning-center/openresty/openresty-getting-started)

OpenResty (NGINX + Lua)

October 14, 2022

#### [What makes OpenResty so special](https://api7.ai/learning-center/openresty/openresty-getting-started)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![What if there is a conflict between Lua rules and NGINX configuration?](https://static.api7.ai/2022/10/14/634974e117ebd.png)](https://api7.ai/learning-center/openresty/conflict-between-lua-rules-and-nginx)

OpenResty (NGINX + Lua)

October 13, 2022

#### [What if there is a conflict between Lua rules and NGINX configuration?](https://api7.ai/learning-center/openresty/conflict-between-lua-rules-and-nginx)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Top Tips: Identifying Unique Concepts and Pitfalls in Lua](https://static.api7.ai/2022/10/14/634974e2dd70a.png)](https://api7.ai/learning-center/openresty/lua-basic-concepts-and-pitfalls)

OpenResty (NGINX + Lua)

October 12, 2022

#### [Top Tips: Identifying Unique Concepts and Pitfalls in Lua](https://api7.ai/learning-center/openresty/lua-basic-concepts-and-pitfalls)

Explore unique Lua concepts and common pitfalls in OpenResty, enhancing your coding skills with practical examples and tips.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![How to Create Tables in Lua: Metatables and OpenResty Tips](https://static.api7.ai/2022/10/14/634974e027871.png)](https://api7.ai/learning-center/openresty/lua-table-and-metatable)

OpenResty (NGINX + Lua)

October 11, 2022

#### [How to Create Tables in Lua: Metatables and OpenResty Tips](https://api7.ai/learning-center/openresty/lua-table-and-metatable)

Learn how to create tables in Lua, use array and key-value entries, define metatables and metamethods, and avoid common performance pitfalls in OpenResty.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![How Does NGINX Reload Work? Why Is NGINX Not Hot-Reloading?](https://static.api7.ai/2022/12/04/638c7f9a66cff.png)](https://api7.ai/blog/how-nginx-reload-work)

Technology

September 30, 2022

#### [How Does NGINX Reload Work? Why Is NGINX Not Hot-Reloading?](https://api7.ai/blog/how-nginx-reload-work)

The nginx -s reload command sends an HUP signal to the master process, which spawns new workers and gracefully shuts down old ones.

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[API Gateway Concept](https://api7.ai/tags/api-gateway-concept)

[NGINX](https://api7.ai/tags/nginx)

[![The JIT Compiler's Drawback: Why Avoid NYI?](https://static.api7.ai/2022/10/02/6338eb0183eea.png)](https://api7.ai/learning-center/openresty/avoid-lua-not-yet-implemented-features)

OpenResty (NGINX + Lua)

September 30, 2022

#### [The JIT Compiler's Drawback: Why Avoid NYI?](https://api7.ai/learning-center/openresty/avoid-lua-not-yet-implemented-features)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Why Does lua-resty-core Perform Better？](https://static.api7.ai/2022/10/02/6338e9e855ca0.png)](https://api7.ai/learning-center/openresty/why-lua-resty-core-perform-better)

OpenResty (NGINX + Lua)

September 30, 2022

#### [Why Does lua-resty-core Perform Better？](https://api7.ai/learning-center/openresty/why-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.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Why Jiakaobaodian Chooses APISIX Ingress Controller](https://static.api7.ai/2022/10/03/633a3cfeb8538.png)](https://api7.ai/blog/why-jiakaobaodian-chooses-apisix-ingress-controller)

Case Study

September 29, 2022

#### [Why Jiakaobaodian Chooses APISIX Ingress Controller](https://api7.ai/blog/why-jiakaobaodian-chooses-apisix-ingress-controller)

After comparing the mainstream Ingress Controllers, Jiakaobaodian chooses to use Apache APISIX as the traffic gateway.

[APISIX Ingress Controller](https://api7.ai/tags/apisix-ingress-controller)

[NGINX](https://api7.ai/tags/nginx)

[Comparison to Competitors](https://api7.ai/tags/comparison-to-competitors)

[![LuaJIT vs Lua: Compatibility, Performance, and OpenResty](https://static.api7.ai/2022/10/02/6338ebfdd2da2.png)](https://api7.ai/learning-center/openresty/luajit-vs-lua)

OpenResty (NGINX + Lua)

September 23, 2022

#### [LuaJIT vs Lua: Compatibility, Performance, and OpenResty](https://api7.ai/learning-center/openresty/luajit-vs-lua)

Compare LuaJIT and standard Lua by compatibility, JIT behavior, FFI, portability, and the OpenResty runtime so you can choose and tune them safely.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Getting Started With Lua](https://static.api7.ai/2022/10/02/6338ec7449840.png)](https://api7.ai/learning-center/openresty/getting-started-with-lua)

OpenResty (NGINX + Lua)

September 23, 2022

#### [Getting Started With Lua](https://api7.ai/learning-center/openresty/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!

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Knowledge of NGINX Used in OpenResty](https://static.api7.ai/2022/10/02/6338edbe6f0be.png)](https://api7.ai/learning-center/openresty/knowledge-of-nginx-used-in-openresty)

OpenResty (NGINX + Lua)

September 17, 2022

#### [Knowledge of NGINX Used in OpenResty](https://api7.ai/learning-center/openresty/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.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![How to Manage Third-Party Packages of OpenResty Through LuaRocks and OPM?](https://static.api7.ai/2022/10/02/6338ee48e0c56.png)](https://api7.ai/learning-center/openresty/how-to-manage-openresty-packages)

OpenResty (NGINX + Lua)

September 17, 2022

#### [How to Manage Third-Party Packages of OpenResty Through LuaRocks and OPM?](https://api7.ai/learning-center/openresty/how-to-manage-openresty-packages)

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

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![A Coredump Story About NGINX ctx and error\_page](https://static.api7.ai/2022/12/04/638c8054cf09c.png)](https://api7.ai/blog/coredump-debug-story-about-nginx)

Technology

September 16, 2022

#### [A Coredump Story About NGINX ctx and error\_page](https://api7.ai/blog/coredump-debug-story-about-nginx)

Recently, we helped an APISIX user debug a strange coredump error. We would like to share some interesting points, providing guidance for debugging NGINX and APISIX.

[Codec](https://api7.ai/tags/codec)

[NGINX](https://api7.ai/tags/nginx)

[Comparison to Competitors](https://api7.ai/tags/comparison-to-competitors)

[![Apache APISIX vs NGINX: When to Use APISIX as an API Gateway](https://static.api7.ai/2022/10/03/633a3d046fa57.webp)](https://api7.ai/blog/apache-apisix-alternative-to-nginx)

Products

September 15, 2022

#### [Apache APISIX vs NGINX: When to Use APISIX as an API Gateway](https://api7.ai/blog/apache-apisix-alternative-to-nginx)

Compare Apache APISIX and NGINX for API gateway use cases, including dynamic routing, plugins, observability, cloud-native deployment, and enterprise support.

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[NGINX](https://api7.ai/tags/nginx)

[Comparison to Competitors](https://api7.ai/tags/comparison-to-competitors)

[![Subprojects Behind OpenResty](https://static.api7.ai/2022/10/02/6338ed50a167c.png)](https://api7.ai/learning-center/openresty/subprojects-behind-openresty)

OpenResty (NGINX + Lua)

September 12, 2022

#### [Subprojects Behind OpenResty](https://api7.ai/learning-center/openresty/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.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Your First OpenResty Program: Hello World](https://static.api7.ai/2022/10/02/6338ecfc5d6c2.png)](https://api7.ai/learning-center/openresty/hello-world-in-openresty)

OpenResty (NGINX + Lua)

September 9, 2022

#### [Your First OpenResty Program: Hello World](https://api7.ai/learning-center/openresty/hello-world-in-openresty)

Follow this post to implement Hello World in OpenResty!

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![OpenResty vs NGINX: Differences, Use Cases, and API Gateway Fit](https://static.api7.ai/2022/10/02/6338eea79f757.png)](https://api7.ai/learning-center/openresty/openresty-vs-nginx)

OpenResty (NGINX + Lua)

September 9, 2022

#### [OpenResty vs NGINX: Differences, Use Cases, and API Gateway Fit](https://api7.ai/learning-center/openresty/openresty-vs-nginx)

Compare OpenResty vs NGINX, including Lua scripting, dynamic behavior, performance, extensibility, and API gateway use cases.

[OpenResty](https://api7.ai/tags/openresty)

[NGINX](https://api7.ai/tags/nginx)

[Lua](https://api7.ai/tags/lua)

[![Why Would You Choose Apache APISIX Instead of NGINX or Kong](https://static.api7.ai/2022/10/03/633a3d046fa57.webp)](https://api7.ai/blog/why-choose-apisix-instead-of-nginx-or-kong)

Products

July 30, 2022

#### [Why Would You Choose Apache APISIX Instead of NGINX or Kong](https://api7.ai/blog/why-choose-apisix-instead-of-nginx-or-kong)

Many companies used to use Nginx or Kong as their API gateway but switched to Apache APISIX now. As an Open Source API Gateway, Apache APISIX solves a lot of pain points for businesses.

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[NGINX](https://api7.ai/tags/nginx)

[Alternatives to Kong](https://api7.ai/tags/alternatives-to-kong)

[![Why AISpeech Chose APISIX Ingress Over NGINX](https://static.api7.ai/2022/10/03/633a441dd2f5c.png)](https://api7.ai/blog/why-aispeech-chooses-apache-apisix-instead-of-nginx-as-k8s-ingress-controller)

Case Study

May 7, 2020

#### [Why AISpeech Chose APISIX Ingress Over NGINX](https://api7.ai/blog/why-aispeech-chooses-apache-apisix-instead-of-nginx-as-k8s-ingress-controller)

See why AISpeech chose APISIX Ingress Controller over NGINX Ingress for dynamic Kubernetes routing, plugins, and operational control.

[APISIX Ingress Controller](https://api7.ai/tags/apisix-ingress-controller)

[NGINX](https://api7.ai/tags/nginx)

[Comparison to Competitors](https://api7.ai/tags/comparison-to-competitors)
