Despliegue y HTTPS

2 min de lectura

Despliegue y HTTPS

PgArachne está diseñado para realizar bien una sola tarea: API Gateway. Para SSL/TLS (HTTPS), seguridad de encabezados y enrutamiento público, se recomienda colocar un Proxy Inverso delante de él.

Opción A: Servidor Caddy

Mejor para: Despliegues de producción modernos, facilidad de uso.

Caddy es el único servidor web que obtiene y renueva certificados SSL (Let’s Encrypt) automáticamente por defecto. Requiere casi cero configuración.

# Caddyfile
example.com {
    reverse_proxy localhost:8080
}

Opción B: Nginx

Mejor para: Entornos empresariales, enrutamiento complejo.

Nginx es el estándar de la industria para balanceo de carga de alto rendimiento. Utilícelo si ya dispone de una infraestructura Nginx. Será necesario gestionar Certbot manualmente.

server {
    server_name example.com;
    location / {
        proxy_pass http://localhost:8080;
    }
}

Opción C: Ngrok

Mejor para: Desarrollo local, demostraciones, pruebas de Webhook.

Ngrok crea un túnel seguro desde internet público directamente al equipo local sin necesidad de configurar firewalls. Ideal para mostrar el trabajo a colegas al instante.

./ngrok http 8080

Checklist de producción

  • Termine TLS en el reverse proxy y reenvíe X-Forwarded-Proto y X-Forwarded-For.
  • Configure TRUSTED_PROXIES en PgArachne con los rangos IP/CIDR de los proxies.
  • Desactive el buffering en rutas SSE y utilice read timeouts suficientemente largos para streaming.
  • Exponga las métricas solo internamente (por defecto 127.0.0.1:9090) y realice el scrape desde la red de monitoreo.

Ejemplo de hardening Nginx (SSE + headers forwarded)

location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /sse/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_buffering off;
    proxy_read_timeout 1h;
}