All posts tagged

"NGINX"

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

OpenResty (NGINX + Lua)

January 20, 2023

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

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

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.

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

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.

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.

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

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

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.

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.

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

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.

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

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

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.

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

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

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.

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

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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

How Does NGINX Reload Work? Why Is NGINX Not Hot-Reloading?

Technology & Products

September 30, 2022

How Does NGINX Reload Work? Why Is NGINX Not Hot-Reloading?

Do you know how NGINX reload works? Read this post to learn its limitations and how to prevent downtime.

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.

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.

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?

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!

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.

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.

A Coredump Story About NGINX ctx and error_page

Technology & Products

September 16, 2022

A Coredump Story About NGINX ctx and error_page

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.

Alternative to NGINX That Makes Your Life Easier: Apache APISIX

Technology & Products

September 15, 2022

Alternative to NGINX That Makes Your Life Easier: Apache APISIX

Many software engineers and teams used NGINX before, but were annoyed by the bottlenecks and restrictions of NGINX. Is there a better alternative?

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.

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!

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.

Why Would You Choose Apache APISIX Instead of NGINX or Kong

Case Study

July 30, 2022

Why Would You Choose Apache 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.

API7.ai Logo

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

Product

API7 Cloud

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