Installa un server Keystone.js usando il proxy inverso Nginx su Ubuntu 16.04

In questo tutorial, configureremo un server Web con un proxy inverso. Il CMS che utilizzeremo è Keystone.js, un noto framework di applicazioni Web basato su Express.js. Il proxy inverso che useremo è Nginx, che è un proxy inverso gratuito e open source, nonché un server HTTP. Il database che useremo è MongoDB, un database di documenti NoSQL. Ciò richiederà di avere un dominio con i record impostati. Se non hai questo set, vai avanti e prenditi cura di te, e torna a questo tutorial.

Installazione del nodo

Innanzitutto installeremo Node.js, che è un interprete Javascript basato sul motore Javascript Chrome V8.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential

Installazione di Nginx

Successivamente, installeremo Nginx, il nostro proxy inverso.

sudo apt update
sudo apt install nginx

Ciò aggiornerà gli elenchi dei pacchetti e installerà Nginx. Al termine dell'installazione, configureremo il nostro progetto nodo.

Inizializzazione del nostro progetto Keystone

Crea il nostro progetto nodo. Per fare ciò, basta creare una nuova cartella.

mkdir website

Quindi, creeremo il nostro package.jsonfile. Per farlo, esegui semplicemente il npm inittuo terminale, compila i campi e rispondi " yes" per confermare. Dopo aver creato il package.jsonfile, installeremo i seguenti moduli di nodo.

sudo npm install -g generator-keystone
sudo npm install -g yo

Al termine del download, esegui quanto segue.

yo keystone

Compila i campi richiesti. Ti verrà chiesto per la project name, la template engine, emailper il pannello di controllo, e così via. Se non sai cosa selezionare, le impostazioni predefinite andranno bene. Dopo aver configurato l'impostazione keystone, possiamo verificare se il nostro server è in esecuzione digitando node keystoneper avviare l'applicazione. Per impostazione predefinita, l'applicazione sarà in esecuzione localhost, sulla porta 3000. Nota che se MongoDB non è installato, un database non sarà immediatamente disponibile. Puoi imparare come installarlo più avanti nel tutorial.

Ecco il layout di directory di base per Keystone.js:

  • /lib - Qui è dove memorizzerai le tue librerie personalizzate e altro codice.

  • /models- Qui è dove verranno archiviati i modelli di database dell'applicazione. KeystoneJS utilizza MongoDB come provider di database.

  • /public - Qui vengono archiviati i tuoi file statici (CSS, JS, immagini e così via).

  • /routes/api - Qui è dove verranno archiviati i controller API della tua applicazione.

  • /routes.views - I controller di visualizzazione dell'applicazione verranno memorizzati qui.

  • /templates - Qui è dove verranno archiviati tutti i file modello dell'applicazione.

  • /updates - Qui vengono archiviati gli script di migrazione.

  • package.json - Questo è il tuo file di configurazione npm che il generatore ha generato per noi.

  • keystone.js - Il nostro file di avvio principale, lo eseguiamo all'avvio del sito Web.

Inizializzazione del nostro database

Come accennato in precedenza, il nostro database che useremo è MongoDB, che è un database NoSQL affidabile, orientato ai documenti. Se hai già installato MongoDB, puoi saltare questa sezione. In caso contrario, ecco come installarlo su Ubuntu 16.04.

Importa la chiave pubblica utilizzata per il pacchetto mongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Creare il file di elenco utilizzato per installare il pacchetto.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Aggiorna gli elenchi dei pacchetti utilizzando apt.

sudo apt update

Infine, installa MongoDB.

sudo apt install mongodb-org -y

Al termine dell'installazione, avviare MongoDB.

sudo service mongod start

Ciò avvierà il processo MongoDB sulla porta 27017.

MongoDB verrà utilizzato in tutta l'applicazione e verrà utilizzato per archiviare le informazioni che utilizziamo per i nostri modelli, ad esempio un Usermodello. Keystone lo utilizza come database preferito e al momento non è possibile utilizzare altri fornitori di database.

Installazione di PM2

Ora è il momento di installare PM2 (Process Manager 2.) PM2 è un gestore dei processi per le applicazioni Node.js, sotto forma di un modulo npm. Fornisce un modo semplice per gestire le applicazioni ed eseguirle in background. Poiché è in NPM, tutto ciò che dobbiamo fare per installarlo è eseguire quanto segue.

sudo npm install pm2 -g

Questo dice a npm di installarlo a livello globale, quindi possiamo usarlo ovunque nel nostro sistema.

Esecuzione / gestione di un'applicazione su PM2

In precedenza, abbiamo eseguito la nostra applicazione Web con node keystone. Con PM2, è un po 'diverso. Ora eseguiamo la nostra app nodo con il seguente.

pm2 start keystone.js

Ciò aggiungerà la nostra applicazione PM2 al nostro elenco di processi e verrà visualizzata una piccola casella in modo da poter vedere che è effettivamente online. Si noti la casella etichettata idper il processo. Tenetelo vicino, poiché faremo molti riferimenti a questo più avanti.

Per visualizzare i registri per l'applicazione.

pm2 logs [id]

Ad esempio, pm2 logs 0se questa è la tua prima applicazione PM2.

Per interrompere l'applicazione Web in qualsiasi momento.

pm2 stop [id]

Per eliminare completamente l'applicazione.

pm2 delete [id]

PM2 ha anche una dashboard di monitoraggio se vuoi vedere alcune statistiche di base per la tua applicazione, e puoi accedervi con questo.

pm2 monit

Questo mostrerà alcune informazioni di base come l'utilizzo della RAM, l'utilizzo della CPU e il tempo di attività.

Una grande caratteristica che offre PM2 è watching. In sostanza, guardare è quando PM2 rileva automaticamente le modifiche a uno qualsiasi dei file nella stessa directory del file di avvio e riavvierà automaticamente l'applicazione. Per abilitarlo, riavvia semplicemente l'applicazione, ma passale un flag di controllo.

pm2 restart [id] --watch

Per disabilitare la visione dopo che è stata abilitata, è sufficiente eseguire nuovamente lo stesso comando e la visione sarà disabilitata.

In questo tutorial, lasceremo a guardare fuori.

Impostazione del proxy inverso

Assicurati di aver installato Nginx. Se per qualche motivo non lo è, fare riferimento ai passaggi precedenti.

Modifica le impostazioni del firewall. Su Ubuntu ufwè il firewall ufficiale. Per impostazione predefinita, le connessioni sono bloccate sulla porta 80. Dobbiamo aggiungere un'eccezione per Nginx sulla porta 80, sulla quale verrà eseguita la nostra applicazione Web.

sudo ufw allow 'Nginx HTTP'

Verifica che il tuo server Nginx sia in esecuzione.

systemctl status nginx

Sotto la Activesezione, se vedi active (running), sei pronto. In caso contrario, puoi provare a riavviare il servizio.

systemctl restart nginx

Elimina il file di configurazione Nginx predefinito.

sudo rm /etc/nginx/sites-available/default

Creane uno nuovo e chiamalo semplicemente node.

sudo nano /etc/nginx/sites-available/node

Incolla quanto segue nel file e sostituiscilo example.comcon il dominio del tuo sito web.

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

Si noti che proxy_passindica l'IP su cui è localhostin esecuzione la nostra app Keystone localmente, che è sulla porta 3000. listen 80è la porta a cui vogliamo indirizzare l'app, che in questo caso è la porta 80.

Quindi, dobbiamo creare un collegamento simbolico o simbolico a una cartella chiamata sites-enabled. La differenza tra sites-enablede sites-availableè che sites-enabledviene effettivamente caricata da Nginx.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

Ora il tuo file di configurazione sites-availablesarà pronto per l'uso e verrà caricato da sites-enabled. Per applicare la configurazione in modo che abbia effetto, è sufficiente riavviare Nginx.

sudo systemctl restart nginx

Infine, riavvia l'applicazione PM2

pm2 restart [id]

Ora puoi navigare nel tuo dominio in un browser e vedrai una Welcome to Keystoneschermata, con un pannello per il login.

Se lo vedi, hai impostato correttamente un server Web di produzione Node.js. In caso contrario, potresti aver fatto un passaggio in modo errato e potresti voler tornare indietro e seguire attentamente ogni passaggio.

Puoi saperne di più su Nginx visitando il loro sito Web .

Spero che questo tutorial ti sia piaciuto e spero che questo ti abbia aiutato a configurare il tuo server web per la produzione sul tuo VPS Vultr.



Leave a Comment

Installazione di Fuel CMS su Ubuntu 16.04 LTS

Installazione di Fuel CMS su Ubuntu 16.04 LTS

Usi un sistema diverso? Fuel CMS è un sistema di gestione dei contenuti basato su CodeIgniter. Il suo codice sorgente è ospitato su GitHub. Questa guida ti mostrerà come t

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare

Come installare Subrion 4.1 CMS su un Fedora 26 LAMP VPS

Come installare Subrion 4.1 CMS su un Fedora 26 LAMP VPS

Usi un sistema diverso? Subrion 4.1 CMS è un sistema di gestione dei contenuti (CMS) open source potente e flessibile che offre un contenuto intuitivo e chiaro

Come installare Couch CMS 2.0 su un Fedora 26 LAMP VPS

Come installare Couch CMS 2.0 su un Fedora 26 LAMP VPS

Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare

Come installare WonderCMS su Fedora 29

Come installare WonderCMS su Fedora 29

Usi un sistema diverso? WonderCMS è un file CMS open source, veloce e di piccole dimensioni scritto in PHP. Il codice sorgente di WonderCMS è ospitato su Github. Questa guida sarà

Come installare Neos CMS su Debian 9

Come installare Neos CMS su Debian 9

Usi un sistema diverso? Neos è una piattaforma di applicazioni di contenuto con un CMS e un framework applicativo al suo interno. Questa guida ti mostrerà come installare

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Come installare BigTree CMS 4.2 su un VPS CentOS 7 LAMP

Come installare BigTree CMS 4.2 su un VPS CentOS 7 LAMP

Usi un sistema diverso? BigTree CMS 4.2 è un sistema di gestione dei contenuti (CMS) rapido e leggero, gratuito e open source di livello aziendale con

Come installare Craft CMS su CentOS 7

Come installare Craft CMS su CentOS 7

Usi un sistema diverso? Craft CMS è un CMS open source scritto in PHP. Il codice sorgente di Craft CMS è ospitato su GitHub. Questa guida ti mostrerà come installare

Come installare ImpressPages CMS 5.0 su un VPS Debian 9 LAMP

Come installare ImpressPages CMS 5.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? ImpressPages CMS 5.0 è un sistema di gestione dei contenuti (CMS) semplice ed efficace, gratuito e open source, intuitivo, basato su MVC

Installazione di Bolt CMS su CentOS 7

Installazione di Bolt CMS su CentOS 7

Bolt è un CMS open source scritto in PHP. Il codice sorgente di Bolts è ospitato su GitHub. Questa guida ti mostrerà come installare Bolt CMS su un nuovo CentOS 7 Vult

Come installare Automad CMS su CentOS 7

Come installare Automad CMS su CentOS 7

Usi un sistema diverso? Automad è un sistema di gestione dei contenuti (CMS) basato su file open source e un motore di template scritto in PHP. Il codice sorgente di Automad i

Come installare Directus 6.4 CMS su un FPS VPS di FreeBSD 11

Come installare Directus 6.4 CMS su un FPS VPS di FreeBSD 11

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Come installare ProcessWire CMS 3.0 su un Ubuntu 16.04 LAMP VPS

Come installare ProcessWire CMS 3.0 su un Ubuntu 16.04 LAMP VPS

Usi un sistema diverso? ProcessWire CMS 3.0 è un sistema di gestione dei contenuti (CMS) semplice, flessibile e potente, gratuito e open source. ProcessWire CMS 3.

Come installare TYPO3 CMS su CentOS 7

Come installare TYPO3 CMS su CentOS 7

Usi un sistema diverso? TYPO3 è un sistema di gestione dei contenuti aziendali gratuito e open source. È scritto in PHP e utilizza MySQL per archiviare i suoi dati. TYPO

Come installare CMS sullo sfondo su un VPS Ubuntu 16.04 LAMP

Come installare CMS sullo sfondo su un VPS Ubuntu 16.04 LAMP

Usi un sistema diverso? Backdrop CMS 1.8.0 è un sistema di gestione dei contenuti (CMS) semplice e flessibile, ottimizzato per dispositivi mobili, gratuito e open source che ci consente

Come installare Anchor CMS su un VPS CentOS 7 LAMP

Come installare Anchor CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Anchor CMS è un motore di blog Content Management System (CMS) super semplice ed estremamente leggero, gratuito e open source

Installazione di Anchor CMS su CentOS 7

Installazione di Anchor CMS su CentOS 7

Usi un sistema diverso? Anchor è un blog CMS open source leggero scritto in PHP. Il codice sorgente delle ancore è ospitato su GitHub. Questa guida ti mostrerà ho

Installazione di Microweber su Ubuntu 16.04

Installazione di Microweber su Ubuntu 16.04

Usi un sistema diverso? Microweber è un drag and drop open source CMS e negozio online. Il codice sorgente di Microweber è ospitato su GitHub. Questa guida ti mostrerà

Come installare Thelia 2.3 su CentOS 7

Come installare Thelia 2.3 su CentOS 7

Usi un sistema diverso? Thelia è uno strumento open source per la creazione di siti Web di e-business e la gestione di contenuti online, scritto in PHP. Codice sorgente Thelia i

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.