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'