⇤ ← Versione 1 del 22/03/2016 21.59.38
Dimensione: 4191
Commento:
|
Dimensione: 4996
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
#format wiki #language it <<BR>> <<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=609198";rilasci="14.04")>> |
|
Linea 3: | Linea 9: |
Node.js è un framework event-driven per il motore JavaScript V8 di Google, su piattaforme UNIX like. Si tratta quindi di un framework relativo all'utilizzo '''server-side''' di Javascript. | '''Node.js''' è un framework per la programmazione a [[https://it.wikipedia.org/wiki/Programmazione_a_eventi|eventi]] per il motore [[https://it.wikipedia.org/wiki/V8_%28motore_Javascript%29|JavaScript V8]] di Google, su piattaforme UNIX like. Si tratta quindi di un framework relativo all'utilizzo ''server-side'' di '''!JavaScript'''. |
Linea 7: | Linea 13: |
Per una configurazione ottimale si dovrebbero avere due server con Ubuntu Server installato, uno che servirà da '''Reverse Proxy''', ed un altro, non accessibile pubblicamente eseguirà le app NodeJS. | 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'''.<<BR>> |
Linea 10: | Linea 16: |
= Configurazione e Installazione = | = Installazione e configurazione = |
Linea 12: | Linea 18: |
Andare sulla pagina di [[https://nodejs.org/en/download/|Download]] di NodeJS e cercate l'url per scaricare l'ultima versione LTS, dopodichè eseguite i seguenti comandi: {{{ cd ~ wget https://nodejs.org/dist/v4.4.0/node-v4.4.0.tar.gz }}} sostituendo l'url con l'url dell'ultima release LTS. Creare una directory node ed estrarre l'archivio appena scaricato: {{{ |
0. Da questo [[https://nodejs.org/en/download/|pagina]] scaricare nella propria '''Home''' l'archivio `.tar.gz` della versione LTS (indicato in alto a destra come '''Source Code'''). 0. Creare la directory `~/node` e quindi estrarre il contenuto dell'archivio al su interno digitando nel [[AmministrazioneSistema/RigaDiComando|terminale]] i comandi:{{{ |
Linea 20: | Linea 21: |
}}}{{{ | |
Linea 21: | Linea 23: |
}}} Cancellare l'archivio tar che non è più necessario: {{{ cd ~ rm -rf node-v* }}} Impostare il prefisso globale di npm, che userà per creare i link simbolici dei pacchetti globali: {{{ |
}}}L'archivio `.tar.gz` può a questo punto essere cancellato o conservato, a scelta dell'utente. 0. Impostare il prefisso globale del ''package manager'' '''npm''' necessario per la creazione dei link simbolici dei pacchetti globali: {{{ |
Linea 30: | Linea 26: |
}}}{{{ | |
Linea 32: | Linea 29: |
Spostare i file binari di node e npm nella directory di installazione: {{{ |
0. Spostare i file binari di '''Node.js''' e '''npm''' nella directory di installazione: {{{ |
Linea 36: | Linea 32: |
Per ragioni di sicurezza modificare il proprietario di tali files con root: {{{ |
0. Per ragioni di sicurezza modificare il proprietario di tali file con root: {{{ |
Linea 40: | Linea 35: |
Creare link simbolici dei file binari di node e npm nel path di default: {{{ |
0. Creare link simbolici dei file binari di '''Node.js''' e '''npm''' nel path di default: {{{ |
Linea 43: | Linea 37: |
}}}{{{ | |
Linea 45: | Linea 40: |
Verificare che node e npm siano installati e funzionanti: {{{ |
0. Verificare che '''Node.js''' e '''npm''' siano installati e funzionanti digitando i comandi: {{{ |
Linea 48: | Linea 42: |
}}}{{{ | |
Linea 51: | Linea 46: |
Adesso node e npm sono installati e pronti per eseguire applicazioni, ma per un app in production è consigliato l'utilizzo di un altro tool: un '''process-manager''' e il migliore è '''pm2'''. | = Installazione di pm2 = |
Linea 53: | Linea 48: |
Quindi procedere con l'installazione di pm2: {{{ | '''Node.js''' e '''npm''' sono a questo punto installati e pronti per eseguire applicazioni. Tuttavia per un'applicazione in produzione è consigliato l'utilizzo di un '''process-manager''' come '''pm2'''. 0. Installare il pacchetto ''pm2'' digitando: {{{ |
Linea 56: | Linea 53: |
E installare gli script per l'avvio con l'avvio dell'OS: {{{ |
0. Installare gli script per l'avvio con l'avvio del sistema: {{{ |
Linea 59: | Linea 55: |
}}} L'output dovrebbe essere simile a questo: {{{ |
}}}che restituirà un output di questo tipo: {{{ |
Linea 65: | Linea 59: |
}}}dove '''USERNAME''' è l'user corrente e '''/home/directory''' la propria directory '''Home'''. 0. 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 |
|
Linea 66: | Linea 70: |
dove USERNAME è l'user corrente e /home/directory la vostra directory HOME. Eseguire quindi il comando indicato: {{{ sudo su -c "env PATH=$PATH:/opt/node/bin pm2 startup ubuntu -u USERNAME --hp /home/directory" |
* 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 |
Linea 72: | Linea 83: |
Adesso il primo server o la prima parte del server è funzionante, di seguito i principali comandi di '''pm2''': {{{ pm2 start app.js // fa partire il daemon che esegue app.js pm2 stop app.js //stoppa il daemon che esegue app.js pm2 delete app.js // rimuove app.js dall'output di "pm2 status" pm2 status [id|name] // da una serie di info sullo stato delle applicazioni che sono eseguite oppure di ogni singola app pm2 monit // monitora le risorse utilizzate dalle app in esecuzione in tempo reale }}} |
= Installazione reverse proxy = |
Linea 80: | Linea 85: |
Ora procedere con l'installazione del reverse proxy: {{{ sudo apt-get update |
0. Installare il pacchetto ''nginx'' digitando il comando: {{{ |
Linea 84: | Linea 88: |
Aprire il file di configurazione nginx: {{{ sudo vi /etc/nginx/sites-available/default }}} Cancellare tutto e inserire il seguente codice: {{{ |
0. Aprire con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file di configurazione `/etc/security/limits.conf`. 0. Cancellare il contenuto e inserire il seguente codice: {{{ |
Linea 105: | Linea 104: |
}}} Si possono aggiungere quanti blocchi location si vuole: {{{ |
}}}Possono essere aggiunti quanti blocchi ''location'' si vuole: {{{ |
Linea 117: | Linea 114: |
Dopodichè riavviare nginx: {{{ |
0. Riavviare nginx: {{{ |
Linea 121: | Linea 117: |
= Ulteriori risorse = * [[https://nodejs.org|Sito ufficiale di Node.js]] |
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 per un'applicazione in produzione è consigliato l'utilizzo di un process-manager come 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/security/limits.conf.
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