Caddy Server est une plateforme puissante et extensible pour servir vos sites, services et applications. Il se sert de la bibliothèque standard Go pour sa fonctionnalité HTTP. Caddy fonctionne principalement au niveau L4 (couche transport) et L7 (couche application) du modèle OSI, bien qu'il ait la capacité de fonctionner avec d'autres couches. La configuration est à la fois dynamique et exportable avec l'API de Caddy. En effet, Caddy est configuré à travers un point terminal d'administration qui est accessible par HTTP à l'aide d'une API REST.
L’API est intuitive et offre des garanties ACID (atomicité, cohérence, isolation et durabilité) :
- atomique : les modifications multiples dans une même requête sont traitées comme une seule unité ; toute modification échouée annule toutes les autres modifications ;
- cohérent : aucune configuration non valide ne peut être chargée ; votre serveur ne se brisera jamais si un problème est détecté au chargement de la configuration ;
- isolé : aucune modification de configuration ne dépend d'une autre (il est utile de savoir que HTTP est un protocole sans état) ;
- durable : Caddy conserve automatiquement la configuration actuelle et valide sur le disque et peut la reprendre en toute sécurité après un cycle d'alimentation si le drapeau --resume est utilisé.
Sur ce dernier point, il faut noter que la dernière configuration est sauvegardée sur le disque après vos modifications. Vous pouvez reprendre la dernière configuration de travail après un redémarrage avec la fonction “Caddy Run --Resume”, qui garantit la durabilité de la configuration en cas de coupure de courant ou autre. Bien qu'aucun fichier de configuration ne soit nécessaire, vous pouvez toujours les utiliser ; la plupart des gens préfèrent utiliser le fichier Caddy pour le configurer. Le langage de configuration natif de Caddy est JSON.
La version 2 de Caddy a été publiée récemment avec de nouvelles fonctions et propose une toute nouvelle architecture. Caddy 2 est une toute nouvelle base de code, écrite à partir de zéro, pour améliorer Caddy 1. Caddy 2 n'est pas rétrocompatible avec Caddy 1. Il apporte un support de première classe pour l'adaptation de la configuration. Vous pouvez utiliser le langage de configuration que vous préférez, comme les fichiers de configuration Nginx. D’autres adaptateurs de configuration sont aussi disponibles, notamment JSONC, JSON5, YAML et CUE.
Grâce à sa nouvelle architecture, Caddy 2 a permis de résoudre près de 400 problèmes et d'éliminer toutes les limitations connues de Caddy 1 dues à des contraintes de conception fondamentales. Caddy 2 est conçu pour être très flexible en cas de besoin, mais aussi très concentré sur sa compétence de base. Caddy est aussi extensible et il est doté d’un système de plugins qui apporte de vastes améliorations par rapport aux autres serveurs Web. Presque toute la configuration de Caddy est localisée dans un seul fichier de configuration.
Selon sa documentation, il est préférable que cela soit fait de cette façon plutôt que d'être dispersée dans des drapeaux CLI et des variables d'environnement et un fichier de configuration comme pour les autres serveurs Web. La gestion de la configuration de votre serveur est alors plus simple et cela réduit les variables/facteurs cachées. Caddy posséderait des garanties de sécurité mémoire plus fortes qu'OpenSSL (Apache et NGINX) ainsi qu’une logique d'automatisation des certificats beaucoup plus avancée que tout autre serveur ou utilitaire.
Tout ceci permettrait à Caddy de maintenir vos sites en ligne malgré les problèmes que les autres serveurs ne gèrent pas. Caddy entend-il faire de l’ombre à Nginx et Apache ? Rappelons qu’en juin dernier, Nginx est devenu le serveur Web le plus utilisé par les sites les plus fréquentés au monde devant Apache et Microsoft IIS, selon une enquête de W3Tech. Il pilote 38,8 % des 1000 sites les plus importants contre 33,7 % pour Apache et 9,2 % pour Microsoft Internet Information Server (IIS).
Source : Caddy Server 2, Page GitHub de Caddy
Et vous ?
Que pensez-vous de Caddy 2 ?
Va-t-il pouvoir rivaliser avec Nginx et Apache ?
Voir aussi
Nginx est maintenant le serveur web le plus utilisé par les sites les plus fréquentés au monde devant Apache et Microsoft IIS, selon W3Tech
Serveurs Web : Nginx détient désormais un tiers des parts de marché tandis qu'Apache chute en dessous des 50 %, d'après W3Tech
F5 acquiert NGINX pour faire le pont entre les NetOps et les DevOps et fournir aux clients des services applicatifs cohérents
PostgREST : un serveur Web autonome qui transforme une base de données PostgreSQL directement en une API RESTful