Par Olivier Girodin, Direction Technique Mesh Box

Votre application est hors ligne ? Oubliez les suppositions. Voici le guide expert de dépannage site web spécialisé Node.js pour diagnostiquer les pannes silencieuses, les fuites mémoires et remettre la production en ligne en moins de 30 minutes.

Filtre de pertinence : Ce guide concerne le dépannage d'architectures applicatives (Node.js, Angular SSR, API). Si votre problème concerne un site WordPress, une erreur DNS ou un hébergement mutualisé type OVH/cPanel, ce protocole technique ne s'applique pas à votre cas.

🌳 Arbre de Décision Rapide (Start Here)

Identifiez votre symptôme en 5 secondes pour sauter à la bonne section :


Introduction : Au-delà du "Reboot", l'Ingénierie de la Disponibilité

En 2026, le dépannage d'un site web moderne ne se résout pas en vidant un cache. Une application Node.js qui ne répond plus est souvent victime d'un blocage de l'Event Loop ou d'une fuite de mémoire native.

Ce guide condense les procédures d'audit d'urgence que nous appliquons chez Mesh Box. Notre objectif n'est pas seulement de "rallumer" le serveur, mais de comprendre pourquoi il s'est éteint.


Phase 1 : La "Golden Minute" (Diagnostic)

Si vous n'avez pas encore mis en place d'observabilité moderne (type OpenTelemetry ou Datadog), vous devez revenir aux fondamentaux. N'agissez pas à l'aveugle. Ouvrez votre terminal SSH.

1. La saturation mémoire (RSS vs Heap)

Une erreur classique en dépannage applicatif est de confondre la mémoire utilisée par le code JS (Heap) et la mémoire totale du processus (RSS).

Vérifiez les processus coupables :

bash
# Affiche les processus Node triés par consommation mémoire réelle
ps aux | grep node | awk '{print $2, $4, $6, $11}' | sort -k3nr | head -n 5

Analyse Expert : Si la colonne %MEM est haute mais que vos logs ne montrent pas de "Fatal Error: Heap out of memory", vous avez une fuite "Native" (hors JS). C'est souvent lié à des Buffers non nettoyés ou des connexions C++ mal gérées.

2. Le CPU : Qui bloque le thread ?

bash
top -bn1 | grep "Cpu(s)"
  • High User % : Votre Event Loop est bloquée par du code synchrone (boucle infinie, calcul crypto, ReDoS). Votre site web est techniquement "en ligne", mais incapable de traiter une nouvelle requête.
  • High System % : Le problème vient de l'OS (Disque saturé, trop de context switching, Garbage Collector en panique).

Phase 2 : Actions de Stabilisation (Le "Quick Fix")

L'objectif ici est de rétablir le service pour les utilisateurs le plus vite possible.

L'approche PM2 (Zero Downtime)

Si vous utilisez PM2, évitez le simple restart qui coupe les connexions en cours.

La commande propre :

bash
pm2 reload all --update-env

La commande "Force Brute" (Si CPU à 100%) : Si un processus boucle à l'infini, le reload peut échouer car le process refuse de mourir. Il faut l'isoler manuellement.

bash
pm2 stop <id>

Le Rollback de Sécurité

Si le crash survient juste après un déploiement, le meilleur dépannage est le retour en arrière immédiat.

⚠️ Attention Danger : Ne lancez la commande ci-dessous que si vous êtes certain de l'intégrité de votre package-lock.json. Une incompatibilité de versions en prod peut être fatale.
bash
# Revenir au commit précédent et réinstaller proprement
git checkout <commit-precedent>
rm -rf node_modules
npm ci --omit=dev
pm2 reload all

Note : Chez Mesh Box, nous forçons l'usage de npm ci qui est plus strict et prédictible que npm install pour les environnements critiques.


Phase 3 : Investigation Profonde & IA (Workflow 2026)

Le service est rétabli ? Parfait. Maintenant, trouvez la cause racine.

Scénario A : L'Event Loop Lag (Le site "mouline")

Le suspect : Un JSON.parse géant ou une Regex malveillante.

L'Outil d'Audit : Utilisez le profiler natif Node.js ou clinic.js pour visualiser ce qui consomme le temps CPU.

Scénario B : La Fuite Mémoire

L'Action Expert : Le Snapshot à chaud. Ne redémarrez pas sans preuve !

bash
# Génère un fichier .heapsnapshot sans tuer le processus
kill -USR2 <PID_NODE>

Récupérez ce fichier et ouvrez-le dans Chrome DevTools > Memory. Cherchez les objets qui s'accumulent (souvent des Map globales ou des sessions utilisateurs non purgées).

💡 L'Astuce IA 2026 pour le dépannage

Ne perdez plus 2h à lire des logs bruts.

  • Extrayez les 100 dernières lignes de logs d'erreur : tail -n 100 error.log
  • Anonymisez les IPs/Emails.
  • Soumettez-les à votre LLM pro avec ce prompt :
"Agis comme un expert Node.js Senior. Analyse ces logs de stacktrace. Identifie si l'erreur vient d'un module node_modules, d'un problème de connectivité DB ou du code applicatif. Suggère 2 pistes de correctifs."

Phase 4 : De l'Incident à l'Architecture

Vous avez éteint l'incendie. C'était du dépannage tactique.

Cependant, il existe un indicateur simple : La Dette de Maintenance. Si vous ou vos équipes devez appliquer ce guide plus d'une fois par mois, le problème n'est plus le serveur, c'est l'architecture. Une application web performante doit être capable d'encaisser la charge sans intervention humaine nocturne.

C'est ici que Mesh Box intervient. Nous passons du "Dépannage" à l'"Ingénierie". Nous transformons des applications fragiles en architectures résilientes (Self-Healing), capables de gérer les pics de charge et les pannes partielles sans réveiller le CTO.


FAQ : Questions Fréquentes sur le Dépannage Node.js

Pourquoi mon site Node.js renvoie une erreur 502 Bad Gateway ?

Cela signifie que Node.js a planté ou ne répond pas assez vite à votre proxy (Nginx/Apache). C'est souvent causé par une Event Loop bloquée par un calcul lourd.

Comment redémarrer un site Node.js sans couper les utilisateurs ?

Utilisez le "Cluster Mode" de PM2 et la commande pm2 reload (et non restart). Cela lance les nouveaux processus avant de tuer les anciens.

Mon serveur a assez de RAM (16Go) mais Node.js crash à 2Go, pourquoi ?

Par défaut, V8 (le moteur de Node) a une limite de Heap (souvent autour de 2Go ou 4Go sur les versions 64-bits). Vous devez augmenter cette limite via le flag --max-old-space-size.

Votre site est toujours en panne ?

Certains incidents complexes demandent une intervention immédiate par un ingénieur senior.

Demander une intervention d'urgence

Olivier Girodin
Lead Architect @ Mesh Box. Expert en audit de performance et stabilisation d'infrastructures critiques.