Lua#
Пакет Lua обеспечивает интеграцию языка программирования Lua в модель обработки событий Angie и позволяет расширять функциональность сервера с помощью скриптов на Lua. Состоит из двух модулей:
lua-nginx-module
— openresty/lua-nginx-modulestream-lua-nginx-module
— openresty/stream-lua-nginx-module
Возможности#
Примеры сценариев использования:
объединение и обработка выходных данных от различных
upstream
-серверов (proxy, drizzle, postgres, redis, memcached и др.);реализация логики контроля доступа и безопасности до передачи запроса на backend;
модификация заголовков ответа;
извлечение информации о проксируемых серверах из внешних хранилищ и динамический выбор
upstream
;написание полноценных веб-приложений внутри
content handler
;маршрутизация URL на этапе rewrite;
реализация расширенного кэширования для подзапросоов и
location
.
Производительность LuaJIT-среды сопоставима с языком C: ее отличают высокая скорость выполнения и низкое потребление памяти. Это делает Lua-интеграцию в Angie особенно эффективной.
Загрузка модуля#
Использование требует предварительной загрузки модуля ndk
. Загрузка
модулей в контексте main{}
:
load_module modules/ndk_http_module.so; load_module
modules/ngx_http_lua_module.so; # для HTTP
modules/ngx_stream_lua_module.so; # для Stream
Устанавливаемые Lua-библиотеки#
Вместе с Lua-модулями устанавливаются следующие сторонние библиотеки:
Дополнительная информация#
Подробная документация и исходный код доступны по ссылкам: