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:

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:

  1. luajit2

  2. lua_chronos

  3. lua_cjson

  4. lua-dumper

  5. lua-ffi-zlib

  6. inspect.lua

  7. lua-resty-core

  8. lua-resty-hmac

  9. lua-resty-http

  10. lua-resty-jwt

  11. lua-resty-lrucache

  12. lua-resty-openidc

  13. lua-resty-openssl

  14. lua-resty-session

  15. lua-resty-string

Informações Adicionais#

Documentação abrangente e código-fonte estão disponíveis em: