Lua#
O pacote Lua integra a linguagem de programação Lua no modelo de processamento orientado a eventos do Angie, permitindo que a funcionalidade do servidor seja estendida com scripts Lua. Ele consiste em dois módulos:
lua-nginx-module
— openresty/lua-nginx-modulestream-lua-nginx-module
— openresty/stream-lua-nginx-module
Instalação#
Para instalar o módulo, use um dos seguintes pacotes:
Angie:
angie-module-lua
;Angie PRO:
angie-pro-module-lua
.
Recursos#
Exemplos de casos de uso:
agregação e processamento de saída de vários servidores
upstream
(proxy, drizzle, postgres, redis, memcached, etc.);implementação de lógica de controle de acesso e segurança antes de passar a requisição para o backend;
modificação de cabeçalhos de resposta;
recuperação de dados do servidor upstream de fontes externas e seleção dinâmica do
upstream
;construção de aplicações web completas dentro do
content handler
;execução de roteamento de URL durante a fase de reescrita;
implementação de cache avançado para sub-requisições e blocos
location
.
O ambiente LuaJIT oferece performance comparável ao C, com alta velocidade de execução e baixo uso de memória. Isso torna a integração Lua especialmente eficiente no Angie.
Carregando o Módulo#
Usar o módulo Lua requer carregar o módulo ndk
previamente.
Os módulos são carregados no contexto main{}
da seguinte forma:
load_module modules/ndk_http_module.so;
load_module modules/ngx_http_lua_module.so; # para HTTP
load_module modules/ngx_stream_lua_module.so; # para Stream
Bibliotecas Lua Incluídas#
As seguintes bibliotecas de terceiros são instaladas junto com os módulos Lua:
Informações Adicionais#
Documentação abrangente e código-fonte estão disponíveis em: