Ritorno
Tech 2 min di lettura - 4 apr. 22 - Mayeul Le Monies de Sagazan

Passare da NGINX a Caddy

Dalla mia esperienza, la configurazione di NGINX diventa rapidamente complessa e può diventare una parte che nessuno vuole toccare per paura di rompere qualcosa. È questo aspetto che mi ha fatto cercare un'alternativa.

Caddy?

Innanzitutto, cos'è Caddy?
È un Server Web multipiattaforma scritto in GO con una configurazione semplice e un'implementazione automatica del HTTPS (con Letsencrypt).
Caddy è opensource sotto licenza Apache 2.0. Al momento della scrittura il suo repository Github si avvicina ai 40k stars.

Comparazione

Compareremo due configurazioni minime per ottenere un reverse proxy di base.

Reverse proxy con NGINX

server {
        listen 443 ssl;
        server_name example.com;

        location / {
                proxy_pass http://localhost:3000;
        }
  
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

server {
        listen 80;
        server_name example.com;

        return 301 https://example.com$request_uri;
}
Con questa configurazione, bisogna anche installare certbot e generare il certificato SSL.

Reverse proxy con Caddy

example.com {
        reverse_proxy localhost:3000
}
È tutto! Caddy genererà lui stesso il certificato SSL e si occuperà di reindirizzare le richieste HTTP in HTTPS.

Installazione

Convinto da Caddy?
Per installarlo basta seguire le istruzioni di installazione qui.
Poi, crea il tuo file di configurazione: /etc/caddy/Caddyfile
Poi, se hai un server NGINX in esecuzione (o un altro server che ascolta sulle porte 80 e 443), dovrai arrestarlo:
sudo systemctl stop nginx.service
sudo systemctl disable nginx.service
Infine, dovrai avviare Caddy e assicurarti che venga lanciato ad ogni riavvio:
sudo systemctl start caddy.service
sudo systemctl enable caddy.service
Ecco!
Naturalmente si può fare molto di più che semplici reverse proxy con Caddy, si possono ad esempio servire file statici, fare load balancing, fare compressione gzip...
Per fare tutto questo dovrai, senza sorpresa, leggere la documentazione !

Bonus

Caddy può anche essere avviato senza alcun file di configurazione, questo può essere pratico per testare rapidamente qualcosa, ecco alcuni esempi:

Server di file statici dalla cartella corrente

caddy file-server --listen localhost:4444
È l'equivalente di:
npx serve . -p 4444
ma ancora più performante.

Reverse proxy con HTTPS automatico

sudo caddy reverse-proxy --from example.com --to localhost:3000

Desideri essere accompagnato per lanciare il tuo progetto digitale ?

Invia il tuo progetto ora