Lua#

El paquete Lua integra el lenguaje de programación Lua en el modelo de procesamiento basado en eventos de Angie, permitiendo que la funcionalidad del servidor sea extendida con scripts Lua. Consiste en dos módulos:

Instalación#

Para instalar el módulo, usa uno de los siguientes paquetes:

  • Angie: angie-module-lua;

  • Angie PRO: angie-pro-module-lua.

Características#

Ejemplos de casos de uso:

  • agregación y procesamiento de salida de varios servidores upstream (proxy, drizzle, postgres, redis, memcached, etc.);

  • implementación de lógica de control de acceso y seguridad antes de pasar la petición al backend;

  • modificación de cabeceras de respuesta;

  • obtención de datos del servidor upstream desde fuentes externas y selección dinámica del upstream;

  • construcción de aplicaciones web completas dentro del content handler;

  • realización de enrutamiento de URL durante la fase de reescritura;

  • implementación de almacenamiento en caché avanzado para subpeticiones y bloques location.

El entorno LuaJIT ofrece rendimiento comparable a C, con alta velocidad de ejecución y bajo uso de memoria. Esto hace que la integración de Lua sea especialmente eficiente en Angie.

Carga del Módulo#

Usar el módulo Lua requiere cargar el módulo ndk previamente. Los módulos se cargan en el contexto main{} de la siguiente manera:

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 Incluidas#

Las siguientes bibliotecas de terceros se instalan junto con los 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

Información Adicional#

Documentación completa y código fuente están disponibles en: