
Il y a quelque temps, je présentais sur RDR-IT Nginx Dashboard, un tableau de bord que j’avais développé pour accompagner un reverse proxy Nginx et simplifier son administration.
Depuis, le projet a largement évolué.
Le tableau de bord est toujours présent, mais la stack qui l’accompagne est devenue beaucoup plus complète. L’objectif reste cependant le même : faciliter l’utilisation et l’administration de Nginx sans masquer son fonctionnement ni imposer une nouvelle façon de le configurer.
Nginx reste Nginx
C’est probablement le point le plus important de cette nouvelle version.
Je ne voulais pas transformer Nginx en un reverse proxy utilisant une configuration propriétaire ou une nouvelle syntaxe. Les fichiers restent donc de simples fichiers de configuration Nginx.
La stack conserve notamment une organisation classique :
nginx/config/
├── conf.d/
├── sites/
├── snippets/
└── streams/Si vous utilisez déjà Nginx, vous retrouverez donc vos habitudes et pourrez généralement réutiliser vos configurations existantes avec peu ou pas d’adaptation.
Cela permet également de continuer à utiliser toutes les fonctionnalités natives de Nginx, comme map, limit_req, proxy_cache, GeoIP ou encore les nombreuses directives disponibles dans Nginx.
L’interface simplifie l’administration, mais elle ne remplace pas Nginx.
Un tableau de bord pour administrer Nginx
Le dashboard permet maintenant de regrouper plusieurs fonctionnalités utiles au quotidien :
- monitoring Nginx avec VTS ;
- visualisation des fichiers de configuration ;
- consultation des certificats SSL ;
- affichage des logs en temps réel ;
- sauvegarde des configurations ;
- contrôle et validation de la configuration Nginx ;
- rechargement ou redémarrage de Nginx ;
- gestion et purge du cache ;
- génération de configurations de Virtual Host.
L’objectif est de disposer des outils courants d’administration au même endroit, tout en conservant la possibilité de modifier directement les fichiers de configuration.
Une stack modulaire
La nouvelle version va également plus loin qu’un simple dashboard.
Différentes fonctionnalités peuvent être ajoutées en fonction des besoins.
GitOps
La stack peut être utilisée avec un dépôt Git afin de versionner et gérer les fichiers de configuration Nginx.
Cela permet notamment de conserver un historique des modifications et de mettre en place une approche GitOps pour le déploiement de la configuration.
Sécurité
Plusieurs solutions peuvent être intégrées :
- CrowdSec pour la détection et le bannissement d’adresses IP ;
- ModSecurity pour ajouter un WAF à Nginx ;
- Coraza, une alternative WAF plus récente, actuellement proposée à titre expérimental.
Les métriques et certaines actions peuvent également être intégrées directement au tableau de bord.
Analyse des logs
Un conteneur nginx-analyzer permet d’aller plus loin dans l’exploitation des logs Nginx.
Il permet notamment d’obtenir des statistiques et des alertes supplémentaires et sert de base à certaines fonctionnalités comme l’analyse des événements WAF ou la visualisation de la provenance du trafic.
La stack peut également s’interfacer avec GoAccess afin de générer des statistiques web à partir des fichiers access.log.
Gestion des certificats et du DNS
La stack propose également des intégrations permettant de simplifier la gestion des services associés au reverse proxy :
- génération de certificats Let’s Encrypt avec Certbot ;
- gestion dynamique des enregistrements DNS avec GoDNS ;
- gestion des certificats utilisés par Nginx.
Trois images Nginx disponibles
Pour répondre aux différents besoins, trois images sont disponibles :
- Nginx standard :
1.30.4 - Nginx + ModSecurity :
1.30.4-waf - Nginx + Coraza :
1.30.4-coraza
La première permet une utilisation classique de Nginx. Les deux autres permettent d’ajouter une couche WAF.
Coraza reste pour le moment expérimental dans cette stack.
Une stack qui reste basée sur Docker Compose
L’ensemble est fourni sous forme de stack Docker Compose.
L’objectif est de pouvoir déployer rapidement un environnement Nginx complet, tout en gardant une structure de fichiers compréhensible et facilement personnalisable.
Les différents composants sont volontairement séparés afin de pouvoir activer uniquement ceux dont vous avez réellement besoin.
Pourquoi cette approche ?
Il existe aujourd’hui de nombreuses solutions permettant de déployer facilement un reverse proxy.
Le choix fait ici est différent.
Plutôt que de chercher à cacher Nginx derrière une interface ou une configuration spécifique, cette stack cherche à ajouter des outils autour de Nginx tout en conservant sa configuration native.
Cela permet de bénéficier à la fois :
- de la puissance et de la flexibilité de Nginx ;
- d’une administration simplifiée ;
- d’un monitoring intégré ;
- d’outils de sécurité ;
- d’analyses complémentaires ;
- d’une approche GitOps ;
- et d’intégrations avec différents outils de l’écosystème.
En résumé :
Nginx reste le moteur. La stack s’occupe du reste.
Le projet évolue
Cette nouvelle version marque donc une évolution importante du projet.
Nginx Dashboard n’est plus uniquement un tableau de bord venant se placer devant un conteneur Nginx : il fait désormais partie d’une stack complète permettant de déployer, administrer, superviser et enrichir un reverse proxy Nginx.
Le projet reste en évolution et de nouvelles intégrations pourront venir compléter cette stack au fil du temps.
Le dépôt
La stack complète, ainsi que les fichiers Docker Compose et les exemples de configuration, sont disponibles sur mon Forgejo :
Nginx Reverse Proxy Stack – Forgejo
Pour ceux qui utilisaient déjà l’ancienne version de Nginx Dashboard, cette nouvelle version constitue donc une évolution importante du projet, avec une approche qui reste volontairement fidèle à l’utilisation classique de Nginx.
Les sources :