SKILL.md
nginx_lua
Nginx con OpenResty (módulo LuaJIT integrado) actúa como API Gateway principal. Gestiona TLS termination, routing, rate limiting distribuido via Redis, y permite lógica personalizada en Lua sin recompilar Nginx.
When to use
Usar como punto de entrada único a todos los microservicios KYC. Todo el tráfico externo pasa por Nginx — nunca exponer los servicios FastAPI directamente a internet.
Instructions
- Usar imagen OpenResty:
docker pull openresty/openresty:alpine - Configuración base en
nginx/conf/nginx.conf:
``nginx upstream kycapi { leastconn; server kyc-api-1:8000; server kyc-api-2:8000; keepalive 32; } server { listen 443 ssl http2; sslcertificate /etc/ssl/certs/kyc.crt; sslcertificatekey /etc/ssl/private/kyc.key; sslprotocols TLSv1.3; sslciphers TLSAES256GCMSHA384:TLSCHACHA20POLY1305SHA256; clientmaxbodysize 20M; # máximo payload (2 imágenes ~5MB c/u + overhead) location /v1/ { proxypass http://kycapi; proxyhttpversion 1.1; proxysetheader Connection ""; proxyread_timeout 30s; } } ``
- Añadir security headers en
addheaderblock (ver skillsecurityheaders). - Habilitar Gzip:
gzip on; gziptypes application/json; gzipmin_length 1024; - Configurar access log en formato JSON para ingesta por Promtail.
- Rate limiting con módulo
limitreqzone+ Redis via lua-resty-redis para contadores distribuidos. - Healthcheck:
location /health { return 200 "ok"; access_log off; }
Notes
- OpenResty incluye LuaJIT — soporta hasta 50K req/s por instancia en hardware moderno.
- Nunca exponer el puerto 8000 de FastAPI al exterior — solo el 443 de Nginx.
- Rotar certificados TLS con cert-manager automáticamente — Nginx recarga con
nginx -s reload.