Próximo: Servidor de música com áudio Bluetooth, Anterior: Obtendo substitutos pelo Tor, Acima: Configuração do sistema [Conteúdo][Índice]
O NGINX pode ser estendido com scripts Lua.
Guix fornece serviço NGINX com capacidade de carregar módulos Lua e pacotes Lua específicos, e responder a solicitações avaliando scripts Lua.
O exemplo a seguir demonstra a definição do sistema com configuração para avaliar o script Lua index.lua na solicitação HTTP para o endpoint http://localhost/hello:
local shell = require "resty.shell" local stdin = "" local timeout = 1000 -- ms local max_size = 4096 -- byte local ok, stdout, stderr, reason, status = shell.run([[/run/current-system/profile/bin/ls /tmp]], stdin, timeout, max_size) ngx.say(stdout)
(use-modules (gnu)) (use-service-modules #;… web) (use-package-modules #;… lua) (operating-system ;; … (services ;; … (service nginx-service-type (nginx-configuration (modules (list (file-append nginx-lua-module "/etc/nginx/modules/ngx_http_lua_module.so"))) (lua-package-path (list lua-resty-core lua-resty-lrucache lua-resty-signal lua-tablepool lua-resty-shell)) (lua-package-cpath (list lua-resty-signal)) (server-blocks (list (nginx-server-configuration (server-name '("localhost")) (listen '("80")) (root "/etc") (locations (list (nginx-location-configuration (uri "/hello") (body (list #~(format #f "content_by_lua_file ~s;" #$(local-file "index.lua"))))))))))))))