NGINX
con soporte para Lua
a través de la imagen fabiocicerchia/nginx-lua
. El objetivo principal es registrar el cuerpo de las solicitudes POST
y responder adecuadamente a los distintos métodos HTTP.
- Captura y muestra el cuerpo (
body
) de las solicitudesPOST
. - Registra la información en los logs en formato JSON.
- Responde con
405 Method Not Allowed
para métodos distintos dePOST
. - Usa
Lua
para manejar la lógica dentro deNGINX
.
/nginx.conf # Configuración de NGINX con Lua
/docker-compose.yml # Definición del servicio NGINX en Docker
/logs/ # Carpeta donde se almacenan los logs de acceso
git clone git@github.com:nach131/Docker-nginx-log.git
cd Docker-nginx-log
docker-compose up -d
curl -X POST http://localhost -d '{"key": "value"}' -H "Content-Type: application/json"
✅ Respuesta esperada:
Received Body: {"key": "value"}
curl -X GET http://localhost
🚫 Respuesta esperada:
Method Not Allowed
Para ver el cuerpo de la solicitud en los logs, ejecuta:
docker logs nginx_server
{"time": "2025-03-14T12:22:20+00:00", "remote_addr": "172.19.0.1", "method": "GET", "uri": "/", "body": "", "status": "405", "agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:135.0) Gecko/20100101 Firefox/135.0"}
{"time": "2025-03-14T12:22:25+00:00", "remote_addr": "172.19.0.1", "method": "POST", "uri": "/", "body": "{\"key\": \"value\"}", "status": "200", "agent": "curl/8.7.1"}
{"time": "2025-03-14T12:22:36+00:00", "remote_addr": "127.0.0.1", "method": "GET", "uri": "/", "body": "", "status": "405", "agent": "curl/8.12.1"}
La configuración de NGINX incluye:
- Log en formato JSON para almacenar información de cada solicitud.
- Bloque
content_by_lua_block
para leer y registrar el cuerpo de la solicitud. - Manejo de métodos HTTP permitiendo solo
POST
y devolviendo405
en otros casos.