Questa guida è stata verificata solo con versioni obsolete di Ubuntu, potrebbe non essere più valida. Vuoi contribuire ad aggiornarla? Clicca qui!

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.

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

Programmazione/NodeJs (l'ultima modifica è del 13/10/2021 16.27.45, fatta da ivantu)