Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


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

  1. Da questo pagina scaricare nella propria Home l'archivio .tar.gz della versione LTS (indicato in alto a destra come Source Code).

  2. 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.

  3. 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
  4. Spostare i file binari di Node.js e npm nella directory di installazione:

    sudo mv node /opt/
  5. Per ragioni di sicurezza modificare il proprietario di tali file con root:

    sudo chown -R root: /opt/node
  6. 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
  7. 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.

  1. Installare il pacchetto pm2 digitando:

    npm install -g pm2
  2. 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.

  3. 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

  1. Installare il pacchetto nginx digitando il comando:

    sudo apt-get install nginx
  2. Aprire con i privilegi di amministrazione e con un editor di testo il file di configurazione /etc/nginx/sites-available/default.

  3. 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;
        }
  4. Riavviare Nginx:

    sudo service nginx restart

Ulteriori risorse


CategoryProgrammazione CategoryServer CategoryDaRevisionare