Meteor.js è un framework JavaScript open source scritto pensando a Node.js. È popolare per la sua visione della creazione di applicazioni web in puro JavaScript. Meteor incorpora il supporto JavaScript front-end che viene eseguito nel browser Web, nonché JavaScript back-end, che verrebbero eseguiti sul server host. Si integra molto bene con i framework JavaScript front-end, come React e Angular.js, nonché MongoDB, un popolare database NoSQL. Alcuni grandi motivi per scegliere Meteor.js sono i seguenti:
-
Meteor.js è un framework full stack. Quindi, con esso, ottieni tutto ciò di cui potresti aver bisogno: database, front-end, back-end. Meteor fa un ottimo lavoro nel legare tutto insieme.
-
Velocità. L'intuitivo sistema di pacchetti di Meteor offre molti strumenti necessari per perfezionare l'applicazione.
-
Ha un buon supporto da parte del gruppo di sviluppatori Meteor e di altri sviluppatori che lo utilizzano. Sarai facilmente in grado di capire eventuali problemi che potresti avere e risolverli rapidamente.
In questo tutorial, raggiungeremo i seguenti obiettivi su Ubuntu 16.04:
-
Installa Node.js
, il nostro runtime Javascript.
-
Installa Meteor.js
.
-
Installa MongoDB
, il database di Meteor preferito.
-
Installa Apache
, il nostro proxy inverso di nostra scelta e imposta il nostro dominio, se applicabile.
-
Prova il nostro sito Web.
-
Imposta il nostro sito Web per la produzione.
Installazione di Node.js
Devi prima installare Node.js, che è il nostro interprete JavaScript e il nucleo di Meteor. Ci consentirà di eseguire Meteor e altre applicazioni Node.js che potremmo avere in futuro. In questa situazione, installeremo Node.js 8. Per avviare il download, esegui semplicemente quanto segue nel tuo terminale.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Attendere il completamento del download e dell'installazione.
Installazione di MongoDB
Successivamente, installeremo il nostro database: MongoDB. MongoDB è un database di documenti NoSQL gratuito e open source e il database preferito di Meteor. Utilizza un formato simile a JSON per i suoi documenti, al contrario delle tabelle strutturate in un database SQL tradizionale.
Importare la chiave pubblica MongoDB utilizzata da APT
(Advanced Packaging Terminal). Ciò consente ad APT di verificare il pacchetto; in questo caso, MongoDB.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Creare il file di elenco necessario per Ubuntu 16.04.
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
Avviare l'installazione di MongoDB e attendere il completamento dell'installazione.
sudo apt update && sudo apt install mongodb-org -y
Aprire il servizio systemd per la modifica.
sudo nano /etc/systemd/system/mongodb.service
Copia e incolla quanto segue per completare il servizio systemd.
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
Utilizzare " Control-O
" per salvare e " Control-X
" per uscire.
Esegui il servizio MongoDB systemd digitando il sudo systemctl start mongodb
tuo terminale.
Per verificare che sia stato avviato correttamente, digitare quanto segue.
sudo systemctl status mongodb
Vedrai che il servizio è attivo.
Installazione e configurazione di Apache2
Successivamente, installeremo Apache. Apache è un software server Web gratuito e open source, che funge anche da proxy inverso, che è ciò che utilizzeremo in questo tutorial. È necessario un proxy inverso per associare la nostra applicazione Meteor.js port 80
. Node.js blocca l'esecuzione delle applicazioni su quella porta senza accesso root. Apache viene eseguito root
automaticamente e si lega port 80
, quindi non dovremo preoccuparci quando arriva il momento di eseguire il nostro sito Web.
Installa Apache.
sudo apt update && sudo apt install apache2
Per consentire l'accesso a porte Web esterne come port 80
, dobbiamo configurare il nostro firewall per Apache. Lo facciamo attraverso UFW
(Firewall semplice).
sudo ufw allow 'Apache Full'
Ciò consentirà l'accesso al Apache Full
profilo " ". Questo ci dà il traffico in entrata port 80
, che è ciò su cui verrà eseguita la nostra applicazione.
Installazione di Meteor.js e creazione della nostra applicazione di base
Ora installeremo il nostro framework Web: Meteor.js. Useremo un semplice script bash fornito dal team Meteor per installarlo.
curl https://install.meteor.com/ | sh
Attendere il completamento dell'installazione. Fondamentalmente ciò che fa lo script è che scarica Meteor dal sito Web ufficiale e lo installa a livello globale, quindi possiamo usarlo da qualsiasi luogo. Una volta terminato, possiamo creare la nostra directory dell'applicazione. Meteor ha un piccolo strumento utile da usare per farlo, chiamato meteor create
. Per creare la directory dell'applicazione, digitare quanto segue.
meteor create <projectname>
La cartella verrà creata con il nome specificato ( <projectname>
).
Configurare il nostro proxy inverso Apache
Ora che abbiamo impostato la nostra directory dell'applicazione, possiamo procedere con l'impostazione del nostro proxy inverso. Apache utilizza un modulo chiamato mod_proxy
, che implementa un proxy per Apache.
sudo apt-get install libapache2-mod-proxy-html libxml2-dev -y
Questo installerà il modulo e lo renderà disponibile per l'utilizzo da parte di Apache.
Successivamente, dovremo abilitare tutti i moduli necessari che Apache deve eseguire. Lo faremo con a2enmod
uno strumento che abilita i moduli per Apache. Questi moduli ci consentiranno di sfruttare il proxy inverso. Digita semplicemente questi comandi nel tuo terminale.
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html
Successivamente, dovremo disabilitare l'avvio del sito Apache predefinito, in modo da poter avviare il nostro. Altrimenti, l'applicazione Apache predefinita sovrascriverà la nostra. Per disabilitare il sito predefinito, eseguire semplicemente quanto segue.
sudo a2dissite 000-default
Ora creeremo il nostro file host virtuale. Per farlo, basta aprire un editor di testo.
sudo nano /etc/apache2/sites-available/<projectname>
Copia e incolla quanto segue.
<VirtualHost *:80>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
# Servers to proxy the connection, or
# List of application servers Usage
ProxyPass / http://0.0.0.0:3000/
ServerName localhost
</VirtualHost>
-
VirtualHost *:80
: Dice ad Apache di collegarsi alla porta 80, che è ciò che vogliamo per la nostra applicazione web.
-
ProxyPass
: L'indirizzo IP del sito che si desidera inoltrare al proxy inverso. Molto probabilmente questo sarà l'IP del tuo VPS
-
ServerName
: Il nome del tuo server (il nome predefinito è di solito localhost
).
Una volta terminata la configurazione delle impostazioni necessarie, utilizzare " Control-O
" per salvare e " Control-X
" per uscire.
Esecuzione del sito per la prima volta
Per verificare e assicurarsi che il sito Web sia in esecuzione, digitare quanto segue nella directory del progetto.
meteor
Vedrai il seguente output che mostra che il tuo sito è stato avviato correttamente.
=> App running at: http://localhost:3000/
Prendi nota che Meteor, per impostazione predefinita, ascolta port 3000
.
Impostazione del nostro sito Web per la produzione
Per assicurarci che la nostra app sia in grado di funzionare, utilizzeremo un servizio systemd. Simile a quello che abbiamo fatto sopra con MongoDB, questo servizio di sistema farà in modo che il nostro sito Web si avvii ogni volta che il nostro sistema viene avviato e rimanga attivo. Riavvia anche la nostra applicazione, nel caso in cui si blocchi per qualsiasi motivo. Per configurare il nostro servizio systemd, digitare quanto segue nel terminale.
sudo nano /etc/systemd/system/<projectname>.service
Ecco come si desidera che il tuo file assomigli.
[Service]
WorkingDirectory=/home/<yourusername>/<projectname>
ExecStart=/usr/local/bin/meteor --production
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<projectName>
User=<yourusername>
Environment=NODE_ENV=production
Environment=PWD=/home/<yourusername>/<projectname>
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1
Nota : non dimenticare di sostituire projectname
con il nome del progetto e yourusername
con il nome utente del VPS.
Ecco alcune linee chiave da tenere a mente.
-
WorkingDirectory
: La directory della tua applicazione.
-
Restart
: Se riavviare l'applicazione si interrompe o meno per qualsiasi motivo.
-
User
: Il tuo nome utente.
-
Environment=PWD
: Identico a WorkingDirectory
.
-
Environment=PORT
: La porta su cui è in esecuzione l'applicazione. L'impostazione predefinita è 3000
.
Salva e chiudi il file.
Ora abiliteremo e avvieremo il servizio.
sudo systemctl enable <projectname>.service
Dov'è <projectname>
il nome del file di servizio che abbiamo creato.
Quindi, inizieremo il servizio.
sudo systemctl start <projectname>.service
La tua applicazione verrà avviata. Per verificare che sia stato avviato, eseguire quanto segue.
sudo systemctl status <projectname>
Vedrai che è attivo, verificando che il servizio sia stato avviato correttamente.
Successivamente, controlleremo il nostro sito Web. Nel tuo browser preferito, vai al tuo indirizzo IP.
http://your-server-ip/
Vedrai la schermata di esempio Meteor, verificando di aver fatto tutto correttamente.
Gestire la nostra applicazione
Ora che abbiamo avviato la nostra applicazione, dovremo gestirla.
Riavvio dell'applicazione
sudo systemctl restart <projectname>
Arresto dell'applicazione
sudo systemctl stop <projectname>
Visualizzazione dello stato dell'applicazione
sudo systemctl status <projectname>
Visualizzazione dei registri
journalctl -u <projectname>
Ora hai configurato correttamente MongoDB, Apache e Meteor e hai creato un server web Meteor.js per la produzione. Ora il resto dipende da te, per progettare il tuo sito Web sul front-end e sul back-end. Hai accesso a MongoDB per archiviare tutti i dati di cui potresti aver bisogno, e Node.js, che offre una varietà di moduli disponibili tramite Node Package Manager ( NPM
) per rafforzare ulteriormente il tuo backend. Per ulteriore documentazione, non esitate a visitare il sito Meteor , dove è possibile ulteriori informazioni su come personalizzare il sito Web a proprio piacimento. Inoltre, è possibile fare riferimento alla documentazione MongoDB , quando si ha a che fare con le operazioni del database.