New

Откройте будущее ИИ с APISIX – Полностью открытый шлюз ИИ для агентов ИИ и LLM!Узнать больше

Узнать больше

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?

Что такое OpenResty и почему его используют так много компаний в наши дни? Прочитайте этот пост, чтобы узнать о его динамических и неблокирующих функциях.

Ваша первая программа на OpenResty: Hello World

OpenResty (NGINX + Lua)

September 9, 2022

Ваша первая программа на OpenResty: Hello World

Следуйте этому посту, чтобы реализовать Hello World в OpenResty!

Подпроекты за OpenResty

OpenResty (NGINX + Lua)

September 12, 2022

Подпроекты за OpenResty

В этом посте представлена структура каталогов OpenResty и связанные инструменты, такие как NGINX C Modules, test-nginx, проекты lua-resty и другие.

Как управлять сторонними пакетами OpenResty через LuaRocks и OPM?

OpenResty (NGINX + Lua)

September 17, 2022

Как управлять сторонними пакетами OpenResty через LuaRocks и OPM?

Мы можем использовать OPM или LuaRocks для управления сторонними пакетами OpenResty. Узнайте больше, прочитав эту статью.

Знания о NGINX, используемом в OpenResty

OpenResty (NGINX + Lua)

September 17, 2022

Знания о NGINX, используемом в OpenResty

Nginx предоставляет модель Master-Worker и фазы выполнения запросов. Прочитав этот пост, вы сможете лучше понять основы Nginx.

Начало работы с Lua

OpenResty (NGINX + Lua)

September 23, 2022

Начало работы с Lua

Lua — это легкий и высокоуровневый язык программирования, разработанный в первую очередь для встраивания в приложения. Начните изучать Lua прямо отсюда!

В чем разница между LuaJIT и стандартным Lua?

OpenResty (NGINX + Lua)

September 23, 2022

В чем разница между LuaJIT и стандартным Lua?

LuaJIT — это Just-In-Time Compiler (JIT) для языка программирования Lua. Что делает LuaJIT быстрее, чем Lua? В чем разница между ними?

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.

Недостаток JIT-компилятора: почему следует избегать NYI?

OpenResty (NGINX + Lua)

September 30, 2022

Недостаток JIT-компилятора: почему следует избегать NYI?

LuaJIT имеет несколько еще не реализованных функций (LuaJIT NYI), изучите их хорошо, чтобы писать высокопроизводительный код на Lua.

Что такое table и metatable в Lua?

OpenResty (NGINX + Lua)

October 11, 2022

Что такое table и metatable в Lua?

Table — единственный механизм структурирования данных в Lua. Мы можем использовать таблицы для представления обычных массивов, символьных таблиц, множеств, записей, очередей и других структур данных. Узнайте больше из этой статьи.

Топ-советы: выявление уникальных концепций и подводных камней в Lua

OpenResty (NGINX + Lua)

October 12, 2022

Топ-советы: выявление уникальных концепций и подводных камней в Lua

Вот несколько уникальных концепций Lua, например, Weak Table, Closure и upvalue.

Что делать, если возникает конфликт между правилами Lua и конфигурацией NGINX?

OpenResty (NGINX + Lua)

October 13, 2022

Что делать, если возникает конфликт между правилами Lua и конфигурацией NGINX?

Некоторые вопросы и ответы о OpenResty, API Gateway и Lua.

Что делает OpenResty таким особенным

OpenResty (NGINX + Lua)

October 14, 2022

Что делает OpenResty таким особенным

OpenResty построен на основе NGINX и LuaJIT, и с этого момента можно начать изучение его основных концепций и принципов работы.

Документация и тестовые случаи: мощные инструменты для решения проблем разработки в OpenResty

OpenResty (NGINX + Lua)

October 23, 2022

Документация и тестовые случаи: мощные инструменты для решения проблем разработки в OpenResty

OpenResty не только предоставляет подробную документацию с параметрами API, типами возвращаемых значений и примерами кода, но также тщательно тестируется с использованием тестовых случаев, что помогает разработчикам эффективно использовать OpenResty.

OpenResty — это улучшенный NGINX с поддержкой динамических запросов и ответов

OpenResty (NGINX + Lua)

October 23, 2022

OpenResty — это улучшенный NGINX с поддержкой динамических запросов и ответов

OpenResty — это расширенная версия NGINX с поддержкой динамических запросов и ответов. В этой статье объясняются API для управления запросами и ответами в OpenResty, такие как "ngx.req.set_method", "ngx.req.set_uri_args", "ngx.req.set_header" и другие.

Магия взаимодействия между работниками NGINX: одна из важнейших структур данных `shared dict`

OpenResty (NGINX + Lua)

October 27, 2022

Магия взаимодействия между работниками NGINX: одна из важнейших структур данных shared dict

shared dict — это важная структура данных в NGINX и OpenResty.

Ядро OpenResty: cosocket

OpenResty (NGINX + Lua)

October 28, 2022

Ядро OpenResty: cosocket

Cosocket является основой для различных неблокирующих библиотек lua-resty-*. В этой статье рассматриваются основные концепции и распространенные API cosocket.

За пределами веб-сервера: Привилегированные процессы и задачи по таймеру

OpenResty (NGINX + Lua)

November 3, 2022

За пределами веб-сервера: Привилегированные процессы и задачи по таймеру

Привилегированные процессы (Privileged Process) и задачи таймера (Timer Tasks) — это важные функции, которые отличают OpenResty от NGINX и других веб-серверов.

Введение в общие API в OpenResty

OpenResty (NGINX + Lua)

November 4, 2022

Введение в общие API в OpenResty

Эта статья познакомит вас с использованием общих API OpenResty для работы со временем, регулярными выражениями и другими распространёнными задачами.

Обработка трафика на уровне Layer 4 и реализация сервера Memcached с помощью OpenResty

OpenResty (NGINX + Lua)

November 10, 2022

Обработка трафика на уровне Layer 4 и реализация сервера Memcached с помощью OpenResty

OpenResty легко реализует сервер Memcached с использованием модуля stream, предоставляемого NGINX, который может обрабатывать трафик на уровне 4.

OpenResty FAQ | Привилегии процессов, фазы выполнения и многое другое

OpenResty (NGINX + Lua)

November 11, 2022

OpenResty FAQ | Привилегии процессов, фазы выполнения и многое другое

FAQ по NGINX + Lua (OpenResty) отвечает на вопросы о правах привилегированных процессов, фазовой отладке, практике использования ngx.exit, переменных и условиях гонки.

Препятствие при внесении кода: `test::nginx`

OpenResty (NGINX + Lua)

November 17, 2022

Препятствие при внесении кода: test::nginx

test::nginx — это DSL, используемый для TDD в OpenResty, который также может применяться для тестирования NGINX и HTTP.

Методы тестирования `test::nginx`: конфигурация, отправка запросов и обработка ответов

OpenResty (NGINX + Lua)

November 18, 2022

Методы тестирования test::nginx: конфигурация, отправка запросов и обработка ответов

В этой статье описывается, как использовать test::nginx для отправки запросов и обработки ответов в тестовом сценарии.

Малоизвестные возможности использования `test::nginx`

OpenResty (NGINX + Lua)

November 24, 2022

Малоизвестные возможности использования test::nginx

test::nginx обладает такими функциями, как препроцессор, пользовательские функции, перемешивание (shuffle) и переиндексация (reindex).

Точное тестирование производительности с помощью `wrk`

OpenResty (NGINX + Lua)

November 25, 2022

Точное тестирование производительности с помощью wrk

В этой статье описываются особенности инструмента для тестирования производительности `wrk` и способы его использования для эффективного и точного тестирования производительности.

OpenResty FAQ | Сетевая структура для тестирования, функции, связанные с SSL, DSL, инструмент `ab`

OpenResty (NGINX + Lua)

December 1, 2022

OpenResty FAQ | Сетевая структура для тестирования, функции, связанные с SSL, DSL, инструмент ab

В этой статье описывается, как создать тестовую сетевую среду, поддержку SSL и DSL в test::nginx, а также использование инструмента `ab`.

Неблокирующий ввод-вывод (Non-blocking I/O) — ключ к повышению производительности OpenResty

OpenResty (NGINX + Lua)

December 2, 2022

Неблокирующий ввод-вывод (Non-blocking I/O) — ключ к повышению производительности OpenResty

Избегайте использования блокирующих операций ввода-вывода в OpenResty, так как они негативно влияют на производительность. Некоторые часто неправильно используемые операции включают: выполнение внешних команд, обработку дискового ввода-вывода и использование lusockets.

Преимущества и недостатки `string` в OpenResty

OpenResty (NGINX + Lua)

December 8, 2022

Преимущества и недостатки string в OpenResty

В этой статье представлены методы оптимизации, которые следует применять в OpenResty: обработка запросов должна быть короткой, простой и быстрой, а также следует избегать генерации промежуточных данных. Также в статье рассматриваются методы оптимизации для работы со строками.

Советы для 10-кратного улучшения производительности в OpenResty: структура данных `Table`

OpenResty (NGINX + Lua)

December 9, 2022

Советы для 10-кратного улучшения производительности в OpenResty: структура данных Table

В openresty таблицы оказывают значительное влияние на производительность. В этой статье описывается, как оптимизировать производительность за счет ручного управления индексами, повторного использования таблиц и использования табличного пула (tablepool).

Руководство по стилю кодирования OpenResty

OpenResty (NGINX + Lua)

December 15, 2022

Руководство по стилю кодирования OpenResty

Руководство по стилю OpenResty содержит общие правила о том, "как писать" код OpenResty, Lua и NGINX.

Различные методы отладки в OpenResty

OpenResty (NGINX + Lua)

December 16, 2022

Различные методы отладки в OpenResty

В этой статье описывается, как выполнять отладку в OpenResty с использованием точек останова и выводом логов, алгоритма бинарного поиска и комментариев, динамической отладки, flame graph и других методов.

Ключи к высокой производительности: `shared dict` и `lru` кэш

OpenResty (NGINX + Lua)

December 22, 2022

Ключи к высокой производительности: shared dict и lru кэш

Эта статья знакомит вас с вариантами использования, применением и принципами реализации как `shared dict`, так и `lru` кэша в Openresty.

`systemtap-toolkit` и `stapxx`: Как использовать данные для решения сложных проблем?

OpenResty (NGINX + Lua)

December 22, 2022

systemtap-toolkit и stapxx: Как использовать данные для решения сложных проблем?

Инструментарий на основе systemtap: systemtap-toolkit и stapxx могут быть использованы для решения задач в реальном времени, таких как анализ и диагностика NGINX и OpenResty.

Как избежать Cache Stampede?

OpenResty (NGINX + Lua)

December 29, 2022

Как избежать Cache Stampede?

Мы можем использовать активное обновление кэша, lua-resty-lock, lua-resty-shcache и директивы NGINX для предотвращения "набегов на кэш" (cache stampedes) в NGINX и OpenResty.

`lua-resty-*` Инкапсуляция освобождает разработчиков от многоуровневого кэширования

OpenResty (NGINX + Lua)

December 30, 2022

lua-resty-* Инкапсуляция освобождает разработчиков от многоуровневого кэширования

В этой статье рассматриваются принципы реализации и использование двух библиотек для инкапсуляции кэширования: `lua-resty-memcached-shdict` и `lua-resty-mlcache`.

Как справляться с резкими скачками трафика: алгоритмы Leaky Bucket и Token Bucket

OpenResty (NGINX + Lua)

January 5, 2023

Как справляться с резкими скачками трафика: алгоритмы Leaky Bucket и Token Bucket

В этой статье объясняется, как использовать алгоритмы leaky bucket (протекающее ведро) и token bucket (ведро с токенами) в NGINX и OpenResty для решения проблемы всплесков трафика.

Динамическое ограничение скорости (Dynamic Rate-Limiting) в OpenResty

OpenResty (NGINX + Lua)

January 6, 2023

Динамическое ограничение скорости (Dynamic Rate-Limiting) в OpenResty

Давайте узнаем, как использовать реализацию `limit-req`, `limit-count`, `limit-conn` и `limit.traffic` в `lua-resty-limit-traffic` и настроить ограничение скорости с их помощью.

Убийственная функция OpenResty: Динамичность

OpenResty (NGINX + Lua)

January 12, 2023

Убийственная функция OpenResty: Динамичность

Openresty позволяет реализовать FaaS, Edge Computing, Dynamic Upstream и многое другое благодаря динамическим функциям, предоставляемым LuaJIT.

Три часто используемые библиотеки Lua Resty в OpenResty

OpenResty (NGINX + Lua)

January 13, 2023

Три часто используемые библиотеки Lua Resty в OpenResty

Давайте изучим часто используемые библиотеки Lua Resty в OpenResty: `lua-resty-ngxvar`, `lua-rapidjson` и `lua-resty-worker-events`.

OpenResty FAQ | Динамическая загрузка, NYI и кэширование Shared Dict

OpenResty (NGINX + Lua)

January 19, 2023

OpenResty FAQ | Динамическая загрузка, NYI и кэширование Shared Dict

В этой статье объясняются динамическая загрузка, блокирующие операции, NYI (Not Yet Implemented), динамический upstream и кэширование общих словарей.

Часть 1: Как создать API-шлюз для микросервисов с использованием OpenResty

OpenResty (NGINX + Lua)

January 20, 2023

Часть 1: Как создать API-шлюз для микросервисов с использованием OpenResty

В этой статье рассматриваются роль, основные компоненты и концепции API-шлюза для микросервисов.

Часть 2: Как создать API-шлюз для микросервисов с использованием OpenResty

OpenResty (NGINX + Lua)

February 2, 2023

Часть 2: Как создать API-шлюз для микросервисов с использованием OpenResty

Технический выбор четырех основных компонентов API Gateway: хранилище, маршрутизация, схема и плагины, представлены соответственно.

Часть 3: Как создать API-шлюз для микросервисов с использованием OpenResty

OpenResty (NGINX + Lua)

February 3, 2023

Часть 3: Как создать API-шлюз для микросервисов с использованием OpenResty

Представлены минимальные примеры того, как запустить API-шлюз с использованием конфигурации и инициализации NGINX, сопоставления маршрутов и плагинов, загрузки плагинов и написания собственных плагинов.

OpenResty FAQ | Как OpenResty используется на практике

OpenResty (NGINX + Lua)

February 10, 2023

OpenResty FAQ | Как OpenResty используется на практике

В этой статье описывается, как OpenResty используется на практике, включая инкапсуляцию базы данных OpenResty, веб-фреймворк OpenResty и другие вопросы.