Héberger un site Node.js sur Plesk
DOG&DEV · 25/01/2025
Héberger un site Node.js sur Plesk
L’extension Node.js de Plesk permet d’exécuter une application Node (Express, Next.js, Nuxt, etc.) sur un domaine ou sous-domaine, avec reverse proxy, variables d’environnement et, selon la version, gestion de processus (PM2). Ce guide décrit la configuration de base.
Prérequis
- Plesk installé avec un domaine (plesk-config-domaine)
- Extension Node.js installée et activée (Extensions Plesk)
- Projet Node.js prêt (dépendances installables via
npm install)
Activer Node.js pour le domaine
- Domaines → votredomaine.com → Node.js (ou Applications → Node.js).
- Activer Node.js pour ce domaine.
- Choisir la version (ex. 18.x, 20.x, 22.x) selon la compatibilité de votre projet.
Structure du projet et script de démarrage
- Déployez les fichiers (FTP, SFTP, Git, déploiement Plesk) dans le répertoire du domaine (ex.
httpdocsou un sous-dossier dédié commeapp). - Point d’entrée : indiquez le fichier de démarrage, par ex. :
server.js(Express)app.jsnpm start(script défini danspackage.json)
Dans Node.js pour le domaine, renseignez :
- Mode d’application : Application (ou Passenger si disponible) ou Run script.
- Script / commande :
server.js,app.js, ounpm startselon la config.
Pour Next.js en production :
- Build :
npm run build - Démarrer :
npm start(ounode .next/standalone/server.jssi mode standalone). Adaptez le Document Root et le reverse proxy si vous servez du statique.
Reverse proxy et Document Root
- Plesk configure en général un reverse proxy (Nginx ou Apache) vers le port où écoute Node (ex. 3000, 8080). Ce port est souvent attribué automatiquement ou défini dans les paramètres Node.js.
- Document Root : pour une SPA ou des assets, vous pouvez garder la racine pointant vers le dossier public de l’app (ex.
out,build,public) et faire proxyifier uniquement l’API vers Node. Pour une app full-Node (Express, Next), la racine est souvent proxifiée vers Node.
Voir la doc Plesk et nginx-phpfpm-linux pour les principes de reverse proxy.
Variables d’environnement
Dans la section Node.js du domaine : Variables d’environnement (ou Environment variables). Ajoutez par ex. :
NODE_ENV=productionPORT=3000(si l’app litprocess.env.PORT)DATABASE_URL,API_KEY, etc.
Évitez d’y mettre des secrets en clair si le panel est partagé ; préférez des fichiers .env avec des droits restrictifs ou des mécanismes sécurisés de votre hébergeur.
PM2 (si disponible)
Certaines versions ou extensions Plesk intègrent PM2 pour gérer le processus Node (redémarrage, logs, montée en charge). Si proposé :
- Choisir PM2 comme mode d’exécution.
- Vérifier le script de démarrage et les variables d’environnement.
En l’absence d’intégration PM2, l’app peut être gérée par le mécanisme par défaut (Passenger, systemd, etc.) selon l’installation Plesk.
Exemple Express minimal
package.json:"start": "node server.js"server.js: écoute surprocess.env.PORT || 3000et sert l’app.
Dans Plesk : Run script ou Application → server.js ou npm start, et renseigner les variables si besoin.
Dépannage
| Symptôme | Cause possible | Correctif |
|---|---|---|
| 502 Bad Gateway | App non démarrée, mauvais port, crash | Vérifier les logs (Node.js, Nginx/Apache) ; npm install et npm start manuels ; port dans les variables d’env |
| 404 sur les routes | Reverse proxy, base URL | Vérifier que tout le trafic (ou le bon préfixe) est proxifié vers Node |
| Module non trouvé | node_modules absent ou mauvais cwd |
Lancer npm install dans le répertoire du projet ; vérifier le répertoire de travail dans Plesk |
Bonnes pratiques
- Utiliser
NODE_ENV=productionetnpm install --omit=deven production. - Ne pas exposer le port Node directement ; garder le reverse proxy (Plesk) en frontal.
- Pour comparer avec une stack PHP : laravel-plesk-website ; pour Nginx seul : nginx-phpfpm-linux.
Ressources
Cet article s’inscrit dans notre série de guides hébergement et gaming. Pour un serveur sur-mesure, contact.