Tableau de bord de contrôle en amont
Le tableau de bord de contrôle en amont est une interface utilisateur Web qui affiche tout ce que bext a détecté à partir de votre configuration nginx. Il s'exécute localement et vous aide à vérifier la migration avant d'apporter des modifications.
Lancement#
sudo bext nginx-takeover [--port 9999] [--nginx-config /etc/nginx/nginx.conf]
Si aucun chemin de configuration n'est fourni, bext détecte automatiquement l'installation de nginx. Le tableau de bord démarre sur 127.0.0.1 (bouclage uniquement, pour des raisons de sécurité) et imprime une bannière de terminal :
╔══════════════════════════════════════════╗
║ bext nginx Preflight ║
╠══════════════════════════════════════════╣
║ Config: /etc/nginx/nginx.conf ║
║ Vhosts: 12 ║
║ SSL Certs: 8 ║
║ Upstreams: 3 ║
║ Warnings: 2 ║
║ Checks: 7 pass / 1 warn / 0 fail ║
╠══════════════════════════════════════════╣
║ Dashboard: http://127.0.0.1:9999 ║
╚══════════════════════════════════════════╝
Sections du tableau de bord#
Grille de statistiques#
Comptes en un coup d'œil : hôtes virtuels, certificats SSL, amont et avertissements de conversion.
Vérifications préalables au vol#
Huit contrôles automatisés avec statut réussite/avertissement/échec :
| Vérifier | Critique | Description |
|---|---|---|
| Configuration analysée | Oui | nginx.conf analysé sans erreurs |
| Certificats SSL accessibles | Oui | Tous les fichiers de certificat référencés sont lisibles |
| nginx En cours d'exécution | Non | Si nginx est actuellement actif |
| Disponibilité des ports | Oui | Les ports 80/443 seront disponibles après l'arrêt de nginx |
| Répertoires racine | Non | Toutes les racines des documents existent sur le disque |
| Backends en amont | Non | Les serveurs backend sont accessibles |
| Autorisations de processus | Oui | Exécuté en tant que root (nécessaire pour les ports < 1024) |
| système disponible | Oui | systemd est présent pour la gestion des services |
Des contrôles critiques doivent être réussis avant que la prise de contrôle ne soit autorisée.
Hôtes virtuels#
Liste pliable de chaque hôte virtuel détecté affichant :
- Noms de serveurs avec balises (exact, joker, regex, par défaut)
- Ports d'écoute avec badges SSL/HTTP2
- Chemin racine du document
- Tableau des blocs d'emplacement (modèle, type de correspondance, action)
- Chemins de certificat TLS
- Réécrire les règles et les conditions
- Pages d'erreur
En amont#
Tableau des blocs amont avec :
- Nom en amont
- Stratégie d'équilibrage de charge
- Liste des serveurs avec poids, état de sauvegarde/arrêt
Avertissements de conversion#
Liste des directives non prises en charge ou partiellement prises en charge avec le chemin du fichier et le numéro de ligne.
Barre d'actions#
- Bouton Prendre le relais : désactivé en cas d'échec d'une vérification critique. Nécessite une boîte de dialogue de confirmation.
- Bouton Rollback — masqué jusqu'à ce que la prise de contrôle soit active. Nécessite également une confirmation.
- Actualiser — réexécute toutes les vérifications et recharge le tableau de bord.
Points de terminaison de l'API#
Le tableau de bord expose également une API JSON :
| Point de terminaison | Méthode | Description |
|---|---|---|
/ |
GET | Page HTML du tableau de bord |
/api/preflight |
GET | Configuration complète + vérifications en JSON |
/api/status |
GET | Phase actuelle, disponibilité, erreurs |
/api/takeover |
POST | Exécuter la migration |
/api/rollback |
POST | Restaurer nginx |
/api/refresh-checks |
POST | Réexécutez toutes les vérifications en amont |
Exemple : JSON de contrôle en amont#
curl http://127.0.0.1:9999/api/preflight | jq
{
"phase": "preflight",
"can_takeover": true,
"checks": [
{ "id": "config_parsed", "name": "Config Parsed", "status": "pass", "details": "12 vhosts, 3 upstreams", "critical": true },
{ "id": "ssl_certs", "name": "SSL Certs Accessible", "status": "pass", "details": "8 certs loaded", "critical": true }
],
"vhosts": [...],
"upstreams": [...],
"warnings": [...]
}
Sécurité#
- Le tableau de bord se lie uniquement à 127.0.0.1 — non accessible depuis le réseau
- Toutes les actions POST nécessitent une confirmation
- L'API de reprise vérifie les échecs critiques avant de continuer
- La restauration est toujours disponible après la prise de contrôle
Si vous souhaitez inspecter le JSON de contrôle en amont sans navigateur (par exemple dans une vérification CI), utilisez curl http://127.0.0.1:9999/api/preflight | jq '.checks[] | select(.status != "pass")' pour afficher uniquement les vérifications ayant échoué.
En rapport#
- Processus de rachat — la machine à états complète derrière le bouton « Prendre le contrôle »
- Guide de migration — où le tableau de bord de contrôle en amont s'intègre dans les étapes de migration
- Aperçu de la compatibilité nginx — ce que bext détecte à partir d'une configuration nginx
- Couverture de la directive : explique les avertissements de conversion que vous pouvez voir
- Opérations : dépannage — que faire en cas d'échec d'une vérification préalable au vol