Caddy Web Server - Installazione e Configurazione
Caddy Web Server - Installazione e Configurazione
Caddy è un web server moderno, leggero e automatico che semplifica la configurazione grazie al supporto integrato per HTTPS tramite Let's Encrypt. Ideale per deployment rapidi, supporta reverse proxy, API e gestione automatica dei certificati SSL/TLS con rinnovoZeroSSL.
Punti Chiave
- Web server moderno con focus su semplicità e configurazione minimale
- Supporto automatico HTTPS tramite Let's Encrypt e ZeroSSL
- Rinnovo automatico dei certificati SSL/TLS
- Configurazione tramite Caddyfile in formato leggibile (sintassi simile a Nginx)
- Supporto nativo a HTTP/2 e HTTP/3
- Funzionalità reverse proxy integrate
- API REST per configurazione dinamica
- Porte di default: HTTP (80), HTTPS (443)
- Supporto per FastCGI, WebSocket e load balancing
- Gestione centralizzata dei siti multipli
- Sistema di moduli/plugin estendibile
- Logging integrato con formattazione JSON
- Supporto per PHP, Python, Node.js tramite direttive
- Compressione Gzip e Brotli automatica
- Possibilità di esecuzione senza privilegi root (porta >1024)
Comandi
# Installazione su Debian/Ubuntu
apt update && apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian-version.list' | sed 's/versie/_VERSION/g' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install caddy
# Installazione su RHEL/CentOS
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy
# Installazione script ufficiale
curl -s https://getcaddy.com | bash -s personal
# Avvio e gestione servizio
systemctl start caddy
systemctl enable caddy
systemctl status caddy
systemctl restart caddy
# Esempio Caddyfile base
# Configurazione sito con HTTPS automatico
miosito.com {
root * /var/www/html
file_server
encode gzip
}
# Esempio Caddyfile reverse proxy
miosito.com {
reverse_proxy localhost:3000
}
# Esempio Caddyfile con PHP
miosito.com {
root * /var/www/html
php_fastcgi localhost:9000
file_server
}
# Configurazione HTTPS con certificato manuale
miosito.com {
tls /etc/ssl/certs/cert.pem /etc/ssl/private/key.pem
root * /var/www/html
file_server
}
# Riga di comando per test configurazione
caddy validate --config /etc/caddy/Caddyfile
# Riga di comando per ricaricare configurazione
caddy reload --config /etc/caddy/Caddyfile
# Visualizzazione log
journalctl -u caddy -f
tail -f /var/log/caddy/access.log