Loading ...

Installare Caddy web server in Debian

Installare Caddy web server in Debian

Caddy web server è un nuovo web server scritto in Go, che pare essere molto veloce e che con varie estensioni / plugin.

Inoltre è multi-piattaforma; io ho deciso di installarlo e testarlo su Debian per vedere di che si tratta.

Può essere usato sia come web server che come proxy server; e ha HTTPS attivato di default.

Detto ciò, vediamo come installarlo.

Questi i comandi per scaricare l'eseguibile (al momento non è nei repo) e lanciare l'installer:

$ wget https://getcaddy.com -O getcaddy
$ chmod +x getcaddy
# ./getcaddy personal http.ipfilter,http.ratelimit

Qui indichiamo il tipo di licenza personal, e aggiungiamo due plugins.

Adesso procediamo con la confgurazione di base; il primo step è aggiungere un utente apposito:

# useradd -M -s /bin/false caddy

Poi aggiungiamo alcune cartelle (se non presenti) e impostiamo i permessi:

# mkdir -p /etc/caddy
# mkdir -p /var/log/caddy
# mkdir -p /var/www/html
# chown -R caddy:root /etc/caddy /var/log/caddy

Create un file di configurazione dentro /etc/caddy e copiateci dentro questo:

http://www.sito.it {
     root /var/www/html
     log /var/log/caddy/hakase-labs.log
     tls on
     gzip
 }

L'opzione tls deve essere attivata a seconda di dove state eseguendo il server:

  • su off in caso di server locale
  • su on in caso di server di produzione

Al momento abbiamo installato tutto, ma dobbiamo farlo partire manualmente; la cosa migliore è creare un servizio.

Create il file /etc/systemd/system/caddy.service e metteteci questo dentro:

[Unit]
Description=Caddy HTTP/2 web server
 
[Service]
User=caddy
Group=caddy
Environment=CADDYPATH=/etc/caddy
ExecStart=/usr/local/bin/caddy -agree=true -log=/var/log/caddy/caddy.log -conf=/etc/caddy/config -root=/dev/null
ExecReload=/bin/kill -USR1 $MAINPID
LimitNOFILE=1048576
LimitNPROC=64

[Install]
WantedBy=multi-user.target

Dove /etc/caddy/config è il file di configurazione creato prima.

Adesso possiamo avviare il server:

# systemctl daemon-reload
# systemctl start caddy
# systemctl enable caddy

Ci rimane da cambiare i permessi alla root del web server:

# chown -R caddy:caddy /var/www/html

E provare a caricare un file; crate un file HTML dentro la root e provate ad aprire il browser in http://www.sito.it.

Prossimamente vedremo come configurare anche PHP.

Enjoy!