Utiliser Caddy comme reverse proxy
![Utiliser Caddy comme reverse proxy](/content/images/size/w2000/2024/06/d2493a68c9cbaf275d9ac596dca4521c514f0c3e-1.png)
Caddy est un puissant reverse proxy écrit en langague go. Il est une excellente alternative à Nginx et Traefik. Je l'utilise pour accéder à mes containers docker. Caddy génère automatiquement les certificats ssl letsencrypt (ce qui est très pratique ). Nous allons voir comment l'installer et l'utiliser.
Installation sur Debian/Ubuntu:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
installation de caddy
Installation avec Docker:
Créez un fichier docker-compose.yml :
version: '3.1'
services:
caddy:
image: caddy:<version>
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./site:/srv
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config:
Pour démarrer le container:
docker compose up -d
Configuration:
Partons du principe que le nom de domaine est "test.ncity.fr" (assurez-vous qu'il pointe bien sur l'adresse ip de votre serveur) et que l'on veut rediriger le domaine sur le port "8080".
Editez le fichier de configuration (à adapter si vous utilisez docker compose):
nano /etc/caddy/Caddyfile
Insérez ces directives:
test.ncity.fr {
reverse_proxy localhost:8080
log {
output file /var/log/caddy/test.ncity.fr.access.log
}
}
Redémarrez caddy:
service caddy restart
Avec Docker compose:
docker compose restart
Caddy a créé et configuré automatiquement le certificat ssl pour votre domaine. Vous pouvez désormais accéder à votre application: https://test.ncity.fr