Procédure
Per eseguire un'applicazione Node.js sul vostro VPS con ISPConfig, dovete configurare Apache in reverse proxy verso la porta locale del vostro script. Node.js è un ambiente di esecuzione JavaScript lato server che consente di creare applicazioni web veloci e scalabili. Combinando un gestore di processi come PM2 e le direttive ISPConfig, garantite la persistenza del vostro servizio e la protezione tramite certificato SSL.
Collegatevi al vostro spazio cliente, andate nella sezione Server poi cliccate su Gestisci di fronte alla vostra macchina VPS sotto ISPConfig.
Nella dashboard del vostro server, cliccate su Pannello di amministrazione per accedere alla console ISPConfig.
Se scegliete di installare Node.js globalmente per l'intero sistema invece che per l'account locale del sito, cliccate su Infogestione, selezionate l'opzione Server NON gestito da LWS e confermate con Convalida. LWS non gestisce più il server, il che sblocca le credenziali in Accesso ROOT SSH.
In ISPConfig, aprite la scheda Siti, aggiungete il vostro dominio (per esempio « esempio.fr »), quindi selezionate le caselle SSL e Let's Encrypt SSL prima di salvare.
Aprite il vostro terminale ed effettuate la connessione SSH con il vostro account (utente del sito ISPConfig oppure utente root se la gestione è stata rimossa).
Per reindirizzare il traffico HTTP verso la vostra applicazione, attivate i moduli richiesti con il comando a2enmod proxy proxy_http poi riavviate Apache tramite systemctl restart apache2 (azione che richiede i diritti di amministrazione o già attiva a seconda del vostro piano).
Installate Node.js in versione LTS sulla vostra sessione con nvm oppure dai repository della vostra distribuzione, quindi verificate la versione installata digitando il comando node -v.
Posizionatevi nella directory del vostro sito web, inizializzate un progetto con npm init -y, installate il framework Express con npm install express e create un file server.js configurato per ascoltare sulla porta locale 3000.
PM2 è un gestore di processi per Node.js che consente di mantenere le applicazioni attive in continuazione e di riavviarle dopo un incidente. Installatelo con npm install -g pm2, avviate il vostro script tramite pm2 start server.js --name mon-app e salvate lo stato con pm2 save.
Un reverse proxy è un server intermedio che riceve le richieste web dei visitatori per trasferirle al server applicativo interno. In ISPConfig, modificate il vostro sito, andate nella scheda Opzioni, quindi aggiungete nel campo Direttive Apache : ProxyPreserveHost On seguito da ProxyPass / http://localhost:3000/ e ProxyPassReverse / http://localhost:3000/.
Aprite il vostro browser e inserite l'indirizzo del vostro sito (per esempio https://exemple.fr) per verificare la visualizzazione del vostro script Node.js protetto.
Sono possibili diversi approcci per integrare i pacchetti Node.js in base alle vostre esigenze di amministrazione e al mantenimento della vostra gestione.
Un errore 502 Bad Gateway o 503 Service Unavailable indica che Apache non riesce a raggiungere Node.js sulla porta configurata. Verificate che la vostra applicazione sia effettivamente avviata sotto PM2 con il comando pm2 status e che stia ascoltando correttamente sulla porta 3000 in locale.
No. Il VPS ISPConfig è gestito per impostazione predefinita, il che garantisce la presa in carico del vostro server. Potete far funzionare Node.js senza root grazie a nvm sotto l'account shell del vostro sito. Se rimuovete la gestione per ottenere l'accesso root, gestite voi stessi l'amministrazione completa del server.
Sì, a condizione di aver eseguito il comando pm2 startup poi pm2 save. PM2 riattiva automaticamente i vostri script all'avvio del sistema.
Sì. Basta assegnare a ogni applicazione una porta locale diversa (per esempio 3000, 3001) e configurare le corrispondenti direttive Apache ProxyPass per ogni dominio in ISPConfig.
No. L'applicazione Node.js ascolta solo sull'indirizzo locale (203.0.113.10 o localhost). È il server Apache che riceve le connessioni web sicure sulle porte standard 80 e 443 per reindirizzarle internamente.
Ponila al team LWS e alla community. La risposta viene pubblicata dopo la moderazione.