Cum să configurați o aplicație web Meteor.js cu MongoDB și Apache pe Ubuntu 16.04 LTS

Meteor.js este un cadru JavaScript, open-source, scris cu Node.js în minte. Este popular datorită vizualizării sale de a construi aplicații web în JavaScript pur. Meteor încorporează suportul JavaScript frontal care rulează în browserul web, precum și JavaScript de back-end, care ar rula pe serverul gazdă. Se integrează foarte bine cu cadrele JavaScript front-end, precum React și Angular.js, precum și cu MongoDB, o populară bază de date NoSQL. Câteva motive importante pentru a alege Meteor.js sunt următoarele:

  • Meteor.js este un cadru full stack. Așadar, cu acesta, obțineți tot ce aveți nevoie vreodată: bază de date, front end, backend. Meteor face o treabă uimitoare de a lega totul împreună.

  • Viteză. Sistemul intuitiv de pachete Meteor vă oferă multe instrumente de care aveți nevoie pentru a vă perfecționa aplicația.

  • Are un sprijin bun din partea Meteor Developer Group, precum și a colaboratorilor care îl folosesc. Veți putea cu ușurință să vă dați seama de problemele pe care le aveți și să le rezolvați rapid.

În acest tutorial, vom realiza următoarele obiective pe Ubuntu 16.04:

  • Instalează Node.js, runtime-ul nostru Javascript.

  • Instalați Meteor.js.

  • Instalare MongoDB, baza de date Meteor la alegere.

  • Instalați Apache, proxy-ul nostru la alegere și configurați-ne domeniul, dacă este cazul.

  • Testează site-ul nostru web.

  • Configurați site-ul nostru pentru producție.

Instalarea Node.js

Mai întâi va trebui să instalați Node.js, care este interpretul nostru JavaScript și nucleul Meteor. Ne va permite să rulăm Meteor și alte aplicații Node.js pe care le putem avea în viitor. În această situație, vom instala Node.js 8. Pentru a începe descărcarea, pur și simplu executați următoarele în terminalul dvs.

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

Așteptați finalizarea descărcării și instalării.

Instalarea MongoDB

În continuare, vom instala baza noastră de date: MongoDB. MongoDB este o bază de date gratuită, open-source pentru documente NoSQL, și baza de date Meteor la alegere. Folosește un format asemănător JSON pentru documentele sale, spre deosebire de tabelele structurate dintr-o bază de date tradițională SQL.

Importați cheia publică MongoDB folosită de APT(Terminalul avansat de ambalare). Aceasta permite APT să verifice pachetul; în acest caz, MongoDB.

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

Creați fișierul de listă necesar pentru 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

Începeți instalarea MongoDB și așteptați terminarea instalării.

sudo apt update && sudo apt install mongodb-org -y

Deschideți serviciul systemd pentru editare.

sudo nano /etc/systemd/system/mongodb.service

Copiați și lipiți următoarele pentru a finaliza serviciul 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

Utilizați " Control-O" pentru a salva și " Control-X" pentru a ieși.

Rulați serviciul de sistem MongoDB tastând sudo systemctl start mongodbterminalul.

Pentru a verifica dacă a început cu succes, tastați următoarele.

sudo systemctl status mongodb

Veți vedea că serviciul este activ.

Instalarea și configurarea Apache2

În continuare, vom instala Apache. Apache este un software de server web gratuit și open source, care funcționează și ca proxy invers, ceea ce vom folosi în acest tutorial. Este necesar un proxy invers pentru a lega aplicația Meteor.js la port 80. Node.js împiedică rularea aplicațiilor pe acel port fără acces root. Apache rulează la fel de rootautomat, precum și se leagă port 80, așa că nu va trebui să ne facem griji despre el atunci când va veni timpul să rulăm site-ul nostru.

Instalați Apache.

sudo apt update && sudo apt install apache2

Pentru a permite accesul la porturi web externe cum ar fi port 80, trebuie să configurăm firewall-ul pentru Apache. Facem acest lucru prin UFW(firewall necomplicat).

sudo ufw allow 'Apache Full'

Acest lucru va permite accesul la Apache Fullprofilul. Acest lucru ne oferă traficul de intrare port 80, la care se execută aplicația noastră.

Instalăm Meteor.js și creăm aplicația noastră de bază

Acum, vom instala cadrul nostru web: Meteor.js. Vom folosi un script bash simplu furnizat de echipa Meteor pentru instalarea acestuia.

curl https://install.meteor.com/ | sh

Așteptați terminarea instalării. Practic, ceea ce face scriptul este că descarcă Meteor de pe site-ul oficial și îl instalează la nivel global, astfel încât îl putem folosi de oriunde. Odată terminat, putem crea directorul nostru de aplicații. Meteor are un instrument util pentru noi, pentru a face acest lucru, numit meteor create. Pentru a crea directorul aplicației, tastați următoarele.

meteor create <projectname>

Dosarul va fi creat cu numele specificat ( <projectname>).

Configurarea proxy-ului nostru invers Apache

Acum că avem directorul nostru de aplicații configurat, putem continua cu configurarea proxy-ului invers. Apache utilizează un modul numit mod_proxy, care implementează un proxy pentru Apache.

sudo apt-get install libapache2-mod-proxy-html libxml2-dev -y

Acest lucru va instala modulul și îl va face disponibil pentru utilizarea lui Apache.

În continuare, va trebui să activăm toate modulele necesare pe care Apache trebuie să le ruleze. Vom face acest lucru cu a2enmodun instrument care permite module pentru Apache. Aceste module ne vor permite să profităm de proxy-ul invers. Pur și simplu introduceți aceste comenzi în terminalul dvs.

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

După aceea, va trebui să dezactivăm site-ul Apache implicit de la pornire, astfel încât să putem începe propriul nostru. În caz contrar, aplicația implicită Apache va trece peste a noastră. Pentru a dezactiva site-ul implicit, pur și simplu executați următoarele.

sudo a2dissite 000-default

Acum vom crea fișierul nostru gazdă virtual. Pentru a face asta, trebuie doar să deschideți un editor de text.

sudo nano /etc/apache2/sites-available/<projectname>

Copiați și lipiți următoarele.

<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: Îi spune lui Apache să se atașeze la portul 80, ceea ce dorim pentru aplicația noastră web.

  • ProxyPass: Adresa IP a site-ului pe care doriți să îl redirecționați către proxy invers. Aceasta va fi cel mai probabil IP-ul VPS

  • ServerName: Numele serverului dvs. (de obicei numele implicit localhost).

După ce ați terminat configurarea setărilor necesare, folosiți " Control-O" pentru a salva și " Control-X" pentru a ieși.

Rulează site-ul pentru prima dată

Pentru a testa și a vă asigura că funcționează site-ul web, introduceți următoarele în directorul de proiect.

meteor

Veți vedea următoarea ieșire care arată că site-ul dvs. a început cu succes.

=> App running at: http://localhost:3000/

Rețineți că Meteor, în mod implicit, ascultă port 3000.

Configurarea site-ului nostru web pentru producție

Pentru a ne asigura că aplicația noastră poate rămâne în funcțiune, vom folosi un serviciu systemd. Similar cu ceea ce am făcut mai sus cu MongoDB, acest serviciu de sistem se va asigura că site-ul nostru va porni de fiecare dată când sistemul nostru începe și va rămâne în funcțiune. De asemenea, va reporni aplicația noastră, în cazul în care se va bloca din orice motiv. Pentru a configura serviciul nostru de sistem, introduceți următoarele în terminalul dvs.

sudo nano /etc/systemd/system/<projectname>.service

Iată cum doriți să arate fișierul dvs.

[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

Notă : Nu uitați să înlocuiți projectnamecu numele proiectului și yourusernamecu numele de utilizator al VPS.

Iată câteva linii cheie pentru care trebuie să ții cont.

  • WorkingDirectory: Directorul aplicației dvs.

  • Restart: Dacă reporniți sau nu aplicarea acesteia se oprește din orice motiv.

  • User: Nume de utilizator.

  • Environment=PWD: Identic cu WorkingDirectory.

  • Environment=PORT: Portul pe care rulează aplicația. Implicit este 3000.

Salvați și închideți fișierul.

Acum, vom activa și porni serviciul.

sudo systemctl enable <projectname>.service

Unde <projectname>este numele fișierului de serviciu pe care l-am creat.

Apoi, vom începe serviciul.

sudo systemctl start <projectname>.service

Aplicația dvs. va începe. Pentru a verifica dacă s-a lansat, executați doar următoarele.

sudo systemctl status <projectname>

Veți vedea că este activ, verificând dacă serviciul a început cu succes.

În continuare, vom consulta site-ul nostru web. În browserul dvs. web la alegere, navigați la adresa dvs. IP.

http://your-server-ip/

Veți vedea ecranul de eșantion Meteor, verificând că ați făcut totul corect.

Gestionarea aplicației noastre

Acum că am început aplicația, va trebui să o gestionăm.

Repornește aplicația

sudo systemctl restart <projectname>

Oprirea aplicației

sudo systemctl stop <projectname>

Vizualizarea stării aplicației

sudo systemctl status <projectname>

Vizualizarea jurnalelor

journalctl -u <projectname>

Ați configurat cu succes MongoDB, Apache și Meteor și ați creat un server web Meteor.js pentru producție. Acum, restul ține de tine, pentru a proiecta site-ul dvs. web în partea frontală și în partea din spate. Aveți acces la MongoDB pentru a stoca orice date de care aveți nevoie și Node.js, care oferă o varietate de module disponibile prin Node Package Manager ( NPM) pentru a vă consolida și mai mult backend-ul. Pentru mai multe documentații, nu ezitați să vizitați site-ul Meteor , unde puteți afla în continuare cum puteți personaliza site-ul dvs. după bunul plac. De asemenea, vă puteți referi la documentația MongoDB , când aveți de-a face cu operațiuni ale bazei de date.



O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe