Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

Caddy ReverseProxy

De Le Wiki de Lug
Version datée du 21 septembre 2026 à 10:40 par Admin (discussion | contributions) (→HTTPS sur un port personnalisé)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

Installation

Debian

# apt update && apt upgrade
# apt install caddy

Configuration

  • Le fichier de configuration principal de Caddy se trouve ici :
# vi /etc/caddy/Caddyfile
  • Exemple minimal pour faire un reverse proxy vers llama-swap écoutant sur 127.0.0.1:8080 :
llm.example.com {
    reverse_proxy 127.0.0.1:8080
}
  • Si le nom de domaine pointe correctement vers le serveur, Caddy demande et renouvelle automatiquement le certificat HTTPS.
  • Après modification du fichier :
# caddy validate --config /etc/caddy/Caddyfile
# systemctl reload caddy
  • Pour consulter les logs :
# journalctl -u caddy -f

HTTPS automatique avec un nom de domaine

  • Exemple avec un nom de domaine pointant vers le serveur :
llm.example.com {
    reverse_proxy 127.0.0.1:8080
}

Dans ce cas :

  • Caddy écoute sur les ports 80 et 443.
  • Caddy demande et renouvelle automatiquement le certificat HTTPS.
  • Les connexions HTTP sur le port 80 sont automatiquement redirigées vers HTTPS.
  • llama-swap reste en HTTP local sur 127.0.0.1:8080.

HTTPS avec un certificat existant

  • Si l'on dispose déjà d'un certificat et de sa clé privée :
https://192.168.1.10 {
    tls /etc/ai/ssl/server.crt /etc/ai/ssl/server.key
    reverse_proxy 127.0.0.1:8080
}

Dans ce cas :

  • Caddy écoute en HTTPS sur le port 443.
  • Le certificat fourni est utilisé à la place de la gestion automatique des certificats.
  • L'utilisateur caddy doit avoir les droits de lecture sur le certificat et sa clé privée.

HTTPS sur un port personnalisé

  • Il est également possible de faire écouter Caddy sur un autre port, par exemple 8080 :
https://192.168.1.10:8080 {
    tls /etc/ai/ssl/server.crt /etc/ai/ssl/server.key
    reverse_proxy 127.0.0.1:8081
}

Dans cet exemple :

  • Caddy écoute en HTTPS sur 192.168.1.10:8080.
  • llama-swap écoute en HTTP local sur 127.0.0.1:8081.
  • Caddy et llama-swap ne peuvent pas utiliser simultanément le même port sur la même adresse.

Le service llama-swap devra donc utiliser par exemple :

ExecStart=/opt/llama-swap/build/llama-swap-linux-amd64 --config /etc/llama-swap/config.yaml --listen 127.0.0.1:8081

L'accès client se fera alors via :

https://192.168.1.10:8080

HTTPS sur le même port que le service local

Caddy peut également exposer en HTTPS le même numéro de port que le service local, à condition qu'il écoute sur une adresse IP différente.

Exemple avec Hermes qui écoute sur 127.0.0.1:8642 :

https://192.168.1.123:8642 {
    bind 192.168.1.123
    reverse_proxy 127.0.0.1:8642
}

Dans cet exemple :

  • Hermes écoute en HTTP sur 127.0.0.1:8642.
  • Caddy écoute en HTTPS sur 192.168.1.123:8642.
  • Les deux services utilisent le port 8642, mais sur deux adresses IP différentes ; il n'y a donc pas de conflit d'écoute.
  • bind 192.168.1.123 force Caddy à écouter uniquement sur cette adresse, au lieu de toutes les interfaces.

L'accès client se fera alors via :

 https://192.168.1.123:8642 

HTTPS interne sans nom de domaine

  • Pour un réseau local, Caddy peut également générer son propre certificat :
https://192.168.1.10 {
    tls internal
    reverse_proxy 127.0.0.1:8080
}

Dans ce cas, Caddy utilise sa propre autorité de certification interne. Les machines clientes doivent faire confiance au certificat racine de Caddy pour éviter les avertissements de certificat.

Vérification de la configuration

  • Avant de recharger Caddy :
# caddy validate --config /etc/caddy/Caddyfile
  • Pour appliquer la nouvelle configuration :
# systemctl reload caddy
  • Pour vérifier les ports utilisés :
# ss -ltnp | grep caddy
  • Pour consulter les logs :
# journalctl -u caddy -f