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.



Leave a Comment

Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP

Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP

Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis

Configurare partajare NFS pe Debian

Configurare partajare NFS pe Debian

NFS este un sistem de fișiere bazat pe rețea care permite computerelor să acceseze fișiere într-o rețea de calculatoare. Acest ghid explică modul în care puteți expune folderele peste NF

Configurați un server TeamTalk pe Linux

Configurați un server TeamTalk pe Linux

TeamTalk este un sistem de conferințe care permite utilizatorilor să aibă conversații audio / video de înaltă calitate, chat de text, transfer de fișiere și partajare ecrane. Este

Folosind cheia SSH pentru a vă conecta la utilizatori non-root

Folosind cheia SSH pentru a vă conecta la utilizatori non-root

Vultr oferă o caracteristică care vă permite să preinstalați cheile SSH la crearea unei noi instanțe. Acest lucru vă permite să accesați utilizatorul root al serverelor, totuși

Cum se instalează Ranger Terminal File Manager pe Linux

Cum se instalează Ranger Terminal File Manager pe Linux

Ranger este un manager de fișiere bazat pe linia de comandă cu legături de cheie VI. Oferă o interfață de blestem minimalistă și frumoasă, cu o vedere asupra ierarhiei de directoare

Cum se instalează Redmine pe Ubuntu 16.04

Cum se instalează Redmine pe Ubuntu 16.04

Folosind un sistem diferit? Redmine este un instrument gratuit și deschis de gestionare a proiectelor bazat pe web. Este scris în Ruby on Rails și acceptă mai multe baze de date

Instalare RethinkDB Cluster pe CentOS 7

Instalare RethinkDB Cluster pe CentOS 7

Introducere RethinkDB este o bază de date NoSQL care stochează date sub formă de documente JSON. Are un limbaj de interogare super intuitiv și are funcții disponibile în mod obișnuit

Cum se construiește Brotli din sursă pe Ubuntu 18.04 LTS

Cum se construiește Brotli din sursă pe Ubuntu 18.04 LTS

Folosind un sistem diferit? Brotli este o nouă metodă de compresie cu un raport de compresie mai bun decât GZIP. Codul sursă este găzduit public pe acest Githu

Configurarea conturilor de utilizator numai SFTP pe CentOS 7

Configurarea conturilor de utilizator numai SFTP pe CentOS 7

În anumite ocazii, este posibil ca un administrator de sistem să aibă nevoie să creeze un cont de utilizator și să restricționeze accesul acestora la gestionarea propriilor fișiere prin sFTP, dar nu b

Utilizarea vizualizărilor MySQL pe Debian 7

Utilizarea vizualizărilor MySQL pe Debian 7

Introducere MySQL are o caracteristică excelentă cunoscută sub numele de vizualizări. Vizualizările sunt interogări stocate. Gândiți-vă la ele ca la un alias pentru o întrebare altfel lungă. În acest ghid,

Cum se instalează Nginx 1.14 pe Arch Linux

Cum se instalează Nginx 1.14 pe Arch Linux

Cerințe preliminare Un server Vultr care funcționează actualizat Arch Linux (vezi acest articol.) Acces Sudo. Comenzile care trebuie rulate ca root sunt prefixate de #. Th

Dezactivați sau restricționați conectarea rădăcină prin SSH pe Linux

Dezactivați sau restricționați conectarea rădăcină prin SSH pe Linux

Permiterea autentificării root pe SSH este de obicei considerată o practică slabă de securitate în întreaga industrie tehnologică. În schimb, puteți efectua administrativ sensibil

Cum se instalează Seafile Server pe Ubuntu 16.10

Cum se instalează Seafile Server pe Ubuntu 16.10

Folosind un sistem diferit? Seafile (versiunea comunității) este o soluție gratuită și deschisă de sincronizare și partajare a fișierelor, care este similară cu ownCloud. De-a lungul spiritului

Cum să compilați Nginx din sursă pe CentOS 7

Cum să compilați Nginx din sursă pe CentOS 7

Folosind un sistem diferit? NGINX poate fi utilizat ca server HTTP / HTTPS, server proxy invers, server proxy de poștă, echilibrator de sarcină, terminator TLS sau cachin

Cum se instalează Thelia 2.3 pe Debian 9

Cum se instalează Thelia 2.3 pe Debian 9

Folosind un sistem diferit? Thelia este un instrument open source pentru crearea de site-uri web pentru e-business și gestionarea conținutului online scris în PHP. Codul sursă Thelia i

Cum se instalează DokuWiki pe Ubuntu 16.04 LTS

Cum se instalează DokuWiki pe Ubuntu 16.04 LTS

Folosind un sistem diferit? DokuWiki este un program wiki open source scris în PHP care nu necesită o bază de date. Stochează date în fișiere text. DokuWik

Configurarea unui chroot pe Debian

Configurarea unui chroot pe Debian

Acest articol vă va învăța cum să configurați o închisoare chroot pe Debian. Presupun că utilizați Debian 7.x. Dacă executați Debian 6 sau 8, acest lucru poate funcționa, bine

Cum se instalează PiVPN pe Debian

Cum se instalează PiVPN pe Debian

Introducere Un mod ușor de a configura un server VPN pe Debian este cu PiVPN. PiVPN este un instalator și un pachet pentru OpenVPN. Creează comenzi simple pentru tine

Cum se instalează Chamilo 1.11.8 pe CentOS 7

Cum se instalează Chamilo 1.11.8 pe CentOS 7

Folosind un sistem diferit? Chamilo este un sistem gratuit și deschis de management al învățării (LMS), care este utilizat pe scară largă pentru educația online și colaborarea în echipă

Instalați Nginx, Wordpress și permiteți criptarea în minute cu EasyEngine pe Debian 8 sau Ubuntu 16.04

Instalați Nginx, Wordpress și permiteți criptarea în minute cu EasyEngine pe Debian 8 sau Ubuntu 16.04

EasyEngine (ee) este un instrument Python care vă permite să gestionați ușor și automat site-urile Wordpress de pe Nginx. Folosind EasyEngine, nu va trebui să dați

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