Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Node.js è un framework per la programmazione a eventi per il motore JavaScript V8 di Google, su piattaforme UNIX like. Si tratta quindi di un framework relativo all'utilizzo server-side di JavaScript.
Prerequisiti
Per una configurazione ottimale si dovrebbero avere due server con Ubuntu Server installato, uno che servirà da reverse proxy, e un altro (non accessibile pubblicamente) eseguirà le applicazioni Node.js.
Tuttavia è possibile configurare il tutto anche avendo un solo server.
Installazione e configurazione
Da questo pagina scaricare nella propria Home l'archivio .tar.gz della versione LTS (indicato in alto a destra come Source Code).
Creare la directory ~/node e quindi estrarre il contenuto dell'archivio al su interno digitando nel terminale i comandi:
mkdir node
tar xvf node-v*.tar.?z --strip-components=1 -C ./node
L'archivio .tar.gz può a questo punto essere cancellato o conservato, a scelta dell'utente.
Impostare il prefisso globale del package manager npm necessario per la creazione dei link simbolici dei pacchetti globali:
mkdir node/etc
echo 'prefix=/usr/local' > node/etc/npmrc
Spostare i file binari di Node.js e npm nella directory di installazione:
sudo mv node /opt/
Per ragioni di sicurezza modificare il proprietario di tali file con root:
sudo chown -R root: /opt/node
Creare link simbolici dei file binari di Node.js e npm nel path di default:
sudo ln -s /opt/node/bin/node /usr/local/bin/node
sudo ln -s /opt/node/bin/npm /usr/local/bin/npm
Verificare che Node.js e npm siano installati e funzionanti digitando i comandi:
node -v
npm -v
Installazione di pm2
Node.js e npm sono a questo punto installati e pronti per eseguire applicazioni. È tuttavia consigliato l'utilizzo di un process-manager come ad esempio pm2.
Installare il pacchetto pm2 digitando:
npm install -g pm2
Installare gli script per l'avvio con l'avvio del sistema:
pm2 startup ubuntu
che restituirà un output di questo tipo:
[PM2] You have to run this command as root [PM2] Execute the following command : [PM2] sudo su -c "env PATH=$PATH:/opt/node/bin pm2 startup ubuntu -u USERNAME --hp /home/directory"
dove USERNAME è l'user corrente e /home/directory la propria directory Home.
Eseguire quindi il comando indicato:
sudo su -c "env PATH=$PATH:/opt/node/bin pm2 startup ubuntu -u USERNAME --hp /home/directory"
Il primo server (o la prima parte del server) sarà adesso funzionante.
Comandi di pm2
Viene di seguito riportata una lista dei principali comandi di pm2.
Avviare il demone che esegue app.js:
pm2 start app.js
Bloccare il demone che esegue app.js:
pm2 stop app.js
Ottenere informazioni sullo stato delle applicazioni in esecuzione oppure di ogni singola app:
pm2 status [id|name]
Rimuove app.js dall'output di pm2 status:
pm2 delete app.js
Monitorare in tempo reale le risorse utilizzate dalle applicazioni:
pm2 monit
Installazione reverse proxy
Installare il pacchetto nginx digitando il comando:
sudo apt-get install nginx
Aprire con i privilegi di amministrazione e con un editor di testo il file di configurazione /etc/nginx/sites-available/default.
Cancellare il contenuto e inserire il seguente codice:
server { listen 80; server_name esempio.it; location / { proxy_pass http://INDIRIZZO_IP_SERVER_APP:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Possono essere aggiunti quanti blocchi location si vuole:
location /app2 { proxy_pass http://INDIRIZZO_IP_SERVER_APP_2:8081; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }
Riavviare Nginx:
sudo service nginx restart