VPS pour Node.js
Next.js et NestJS
Processus longue durée, WebSockets, tâches planifiées : tout ce qu'un hébergement mutualisé ne permet pas. Root SSH et ports libres.
Une application Node.js est un processus qui tourne en continu et écoute sur un port. C'est précisément le modèle que l'hébergement mutualisé ne sait pas accueillir, puisqu'il est conçu pour exécuter du PHP à la demande. Un VPS résout le problème à la racine : vous lancez votre processus, vous le supervisez, il reste en vie.
Cela ouvre aussi les usages que le serverless facture cher ou complique : connexions WebSocket persistantes, tâches cron, files d'attente en mémoire, et absence totale de démarrage à froid. Votre application répond avec la même latence à trois heures du matin qu'en pleine journée.
Pourquoi un VPS pour Node.js ?
Processus permanents et WebSockets
Connexions temps réel, Socket.IO et files en mémoire fonctionnent sans contournement ni facturation à la connexion.
Aucun démarrage à froid
Contrairement aux plateformes serverless, votre application reste chargée en mémoire. La première requête est aussi rapide que la millième.
Version de Node choisie par vous
Vous installez la version LTS de votre choix via nvm ou le dépôt NodeSource, et vous décidez du moment de la mise à jour.
Quelle taille de VPS pour Node.js ?
Node.js est monothread pour l'exécution JavaScript : au-delà d'un certain trafic, on lance plusieurs instances via le mode cluster de PM2, une par vCPU.
| Votre usage | Offre conseillée | Ce que ça encaisse |
|---|---|---|
| API ou petit projet | VPS 4G2 vCPU · 4 Go · 40 Go NVMedès 6,79 €/mois HT | Une API REST, un bot ou un site Next.js avec un trafic modéré. Deux instances PM2 en cluster. |
| Application en production | VPS 8G4 vCPU · 8 Go · 80 Go NVMedès 9,34 €/mois HT | Next.js en SSR, une base PostgreSQL et un cache Redis sur la même machine. Quatre instances. |
| Trafic soutenu ou build lourd | VPS 16G6 vCPU · 16 Go · 160 Go NVMedès 14,44 €/mois HT | Les builds Next.js et les monorepos consomment beaucoup de mémoire à la compilation. |
Notre recommandation : VPS 8G
4 vCPU permettent quatre instances en cluster, et 8 Go absorbent un build Next.js sans faire tomber l'application en cours d'exécution.
Déployer une application Node.js
Le schéma le plus courant : Node écoute en local sur un port interne, Nginx reçoit le trafic public et le transmet, PM2 garde le processus en vie.
- 1
Installer Node.js LTS
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - apt install nodejs -y node -v - 2
Installer PM2 et lancer l’application
npm install -g pm2 pm2 start npm --name mon-app -- start pm2 save - 3
Redémarrer automatiquement au boot
pm2 startup systemdLa commande affiche une ligne à copier-coller pour finaliser l’enregistrement du service.
- 4
Placer Nginx en frontal
apt install nginx -y # proxy_pass http://127.0.0.1:3000; dans votre bloc server nginx -t && systemctl reload nginx
Questions fréquentes — Node.js
PM2 ou systemd pour garder l’application en vie ?+−
PM2 apporte le mode cluster, le rechargement sans coupure et une supervision des journaux — pratique quand on gère plusieurs applications Node. systemd est déjà présent, ne consomme rien et s'intègre aux journaux système. Pour une application unique, systemd suffit largement ; au-delà, PM2 fait gagner du temps.
Faut-il mettre Nginx devant Node.js ?+−
C'est vivement recommandé. Nginx gère la terminaison TLS, sert les fichiers statiques plus efficacement, applique une limitation de débit et vous permet d'héberger plusieurs applications sur les ports 80 et 443. Exposer Node directement sur le port 443 fonctionne mais vous prive de tout cela.
Combien de RAM pour une application Next.js ?+−
Une instance Next.js en production occupe généralement entre 200 et 500 Mo. Le pic se situe pendant le build, qui peut demander 2 Go ou plus sur un projet conséquent. Si votre build échoue faute de mémoire, une solution consiste à construire ailleurs et à ne déployer que le résultat.
Puis-je héberger plusieurs applications Node sur un VPS ?+−
Oui. Chaque application écoute sur un port local différent — 3000, 3001, 3002 — et Nginx route selon le nom de domaine. PM2 gère l'ensemble des processus depuis une seule interface, avec une limite mémoire par application si nécessaire.