2 min di lettura

Deployment e HTTPS

PgArachne è progettato per svolgere bene un solo compito: API Gateway. Per SSL/TLS (HTTPS), sicurezza degli header e routing pubblico, dovresti posizionare un Reverse Proxy davanti ad esso.

Opzione A: Server Caddy

Ideale per: Deployment di produzione moderni, facilità d’uso.

Caddy è l’unico server web che ottiene e rinnova automaticamente i certificati SSL (Let’s Encrypt) per impostazione predefinita. Richiede quasi zero configurazione.

# Caddyfile
example.com {
    reverse_proxy localhost:8080
}

Opzione B: Nginx

Ideale per: Ambienti enterprise, routing complesso.

Nginx è lo standard industriale per il bilanciamento del carico ad alte prestazioni. Usalo se hai già un’infrastruttura Nginx. Dovrai gestire Certbot manualmente.

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

Opzione C: Ngrok

Ideale per: Sviluppo locale, Demo, test Webhook.

Ngrok crea un tunnel sicuro da internet pubblico direttamente al tuo portatile senza configurare firewall. Ideale per mostrare il tuo lavoro ai colleghi all’istante.

./ngrok http 8080

Checklist di produzione

  • Termina TLS sul reverse proxy e inoltra X-Forwarded-Proto e X-Forwarded-For.
  • Imposta TRUSTED_PROXIES in PgArachne con i range IP/CIDR dei tuoi proxy.
  • Disattiva il buffering sulle rotte SSE e usa read timeout sufficientemente lunghi per lo streaming.
  • Esponi le metriche solo internamente (default 127.0.0.1:9090) e fai scrape dalla rete di monitoraggio.

Esempio hardening Nginx (SSE + header 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;
}