rete:caddy:appunti_caddy
Indice
Appunti su Caddy webserver
Autore: Fabio Di Matteo
Ultima revisione: 30/06/2026 14:10
Alcuni appunti su Caddy web server.
Avviare manualmente Caddy da utente non privilegiato
Vogliamo avviare caddy server da utente non privilegiato, ma vogliamo che resti in ascolto su porte privilegiate.
setcap 'cap_net_bind_service=+ep' /usr/sbin/caddy su - caddy -s /bin/sh -c "caddy --config /etc/caddy/Caddyfile start"
Semplice virtual host con supporto a php
Richiede PHP-FPM configurato e avviato con lo stesso utente che usa Caddy.
mysite:443 {
root * /var/web/
encode
file_server
php_fastcgi unix//opt/php.sock
log {
level ERROR
output file /var/log/caddy/error.log {
roll_size 10mb
roll_keep 5
roll_keep_for 336h
}
}
#inserire qui , eventualmente le direttive sottostanti
}
Url rewrite per un progetto contenuto in una sottocartella
...
handle_path /myapp/* {
root * /opt/web/myapp
try_files {path} {path}/ /index.php?{query}
encode gzip
php_fastcgi unix//opt/php85.sock
file_server
}
La direttiva try_files fa si che se nn trova file, oppure cartelle con il nome della nostra richiesta allora smista a /myproject/index.php
Proibire l'accesso a una sottocartella
...
route /phpmyadmin* {
respond "Oh no..."
}
Proibire l'esecuzione di file php in una cartella
...
handle /images/*.php {
respond "Php Forbidden."
}
Cambiare globalmente le porte di default per http e https
In cima al file di configurazione. Sezione globale.
{
http_port 880
https_port 84443
}
Reverse proxy
...
route /apps/* {
reverse_proxy localhost:6789
}
...
Ricordarsi di abilitare la rotta /apps anche sulla nostra applicazione locale
Proteggersi da attacchi ddos
...
handle /myapp* {
reverse_proxy localhost:3000 {
transport http {
dial_timeout 2s
response_header_timeout 10s
}
}
}
...
il server dietro proxy deve rispondere entro 2 secondi a una richiesta e non puo' impiegare piu' di 10 secondi per ritornare una risposta.
rete/caddy/appunti_caddy.txt · Ultima modifica: 08/07/2026 16:34 da Fabio Di Matteo
