GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare una semplice app nodejs con nginx e pm2 sul server Ubuntu

L'esecuzione dell'app nodejs nell'ambiente di sviluppo o locale in cui l'interfaccia GUI è fornita nel sistema operativo è un compito facile, ma quando si tratta di distribuirla in produzione su un server cloud, la maggior parte dei principianti non sa come iniziare. Quindi, ecco la procedura dettagliata passo passo per configurare una semplice app nodejs.

1. Creazione di un nuovo utente sudo

NOTA:se hai già creato un utente con privilegi di superutente, non è necessario seguire questo passaggio.

In realtà puoi lavorare direttamente con root utente, ma alcuni comandi pericolosi digitati in modo errato da te nel terminale danneggeranno il server. Quindi meglio andare con sudo accedere e per crearlo prima accedi con root privilegi utente:

$ ssh [email protected]_server_ip

E poi completalo fornendo password e autenticità dell'host.
Ora crea un nuovo utente con sudo accesso:

$ adduser sonu
$ usermod -aG sudo sonu

Il primo comando crea un nuovo utente dopo aver posto alcune domande e il secondo comando aggiunge quell'utente al sudo gruppo (gruppo di superutenti).
Ora disconnettiti dal server (usa exit comando) e accedi con questo nuovo utente.

$ ssh [email protected]_ip

2. Installa nginx e node.js

Per prima cosa aggiorna apt repository con questo comando:

$ sudo apt update

Ora installa nginx usando

$ sudo apt install nginx

E poi nodejs con

$ curl -sL https://deb.nodesource.com/setup_6.x | bash
$ sudo apt install -y nodejs

Puoi anche controllare il nodesource ufficiale [istruzioni per l'installazione.] (https://github.com/nodesource/distributions#installation-instructions) per l'ultima versione di node.js.

3. Avvio di una semplice app nodejs (express)

Creeremo una semplice app expressjs usando express-generator . Quindi prima installa express-generator a livello globale utilizzando quanto segue:

$ sudo npm i express-generator -g

Successivamente crea l'app express nella home directory

$ cd ~
$ express testapp

Ora avvia l'app usando :

$ cd testapp
$ npm install & npm start

La tua app partirà da http://localhost:8080 porta.

4. Installa pm2 per eseguirlo per sempre

Basta fare npm start non riavvierà l'app se l'app si interrompe in caso di errore del server o qualcosa del genere. Quindi, per mantenerlo attivo e funzionante ogni volta che il sistema si riavvia, utilizziamo pm2 app nodejs. Installalo a livello globale digitando sudo npm i pm2 -g ed esegui l'app per sempre usando il seguente comando.

$ cd testapp/bin
$ pm2 start www

5. Mappatura 8080 alla porta http predefinita.

Ora il passaggio finale consiste nell'usare nginx per mappare 8080 porta al valore predefinito 80 porta http. Lo chiamiamo server proxy inverso.
Apri il blocco server predefinito di nginx ed elimina tutto da quel file.

$ sudo nano /etc/nginx/sites-available/default

Incolla il seguente codice in questo file e salvalo:

server {
   listen 80;
   server_name "";
   location / {
     proxy_pass http://localhost:8080;
     proxy_http_version 1.1;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

Infine prova la configurazione e ricarica nginx :

$ sudo nginx -t
$ sudo nginx -s reload
## or restart the nginx 
$ sudo service nginx restart

Un ulteriore passaggio consiste nel disabilitare la porta 8080 tramite ubuntu ufw firewall. Abilitarlo bloccherà tutte le porte. Quindi consenti alcune porte comuni tramite Nginx Full configurazione.

$ sudo ufw enable
$ sudo ufw allow 'Nginx Full'

Linux
  1. Che cos'è il server Samba e come configurare il server Samba in Ubuntu Linux

  2. Come installare Elgg con Nginx su Ubuntu 18.04

  3. Come configurare Django con Postgres, Nginx e Gunicorn su Ubuntu 20.04

  4. Come proteggere il tuo server Ubuntu con CSF Firewall

  5. Come installare e configurare lo stack MERN con Nginx su Ubuntu 20.04

Come impostare l'autenticazione della password con Apache su Ubuntu 18.04

Come creare un e-commerce con Prestashop e Ubuntu 18.04

Come installare e configurare Sendmail su Ubuntu

Come installare Apache Tomcat 10 su Ubuntu 20.04 con Nginx

Come installare Apache Tomcat 10 su Ubuntu 22.04 con Nginx

Come proteggere Nginx con Let's Encrypt su Ubuntu 20.04