Slik konfigurerer du en Meteor.js-nettapplikasjon med MongoDB og Apache på Ubuntu 16.04 LTS

Meteor.js er et åpen kildekode, JavaScript-rammeverk skrevet med Node.js i tankene. Det er populært på grunn av synet på å bygge nettapplikasjoner i ren JavaScript. Meteor inkluderer front-end JavaScript-støtte som kjører i nettleseren, samt back-end JavaScript, som vil kjøre på vertsserveren. Den integreres veldig godt med front-end JavaScript-rammeverk, som React og Angular.js, samt MongoDB, en populær NoSQL-database. Noen få store grunner til å velge Meteor.js er som følger:

  • Meteor.js er et fullstack-rammeverk. Så med den får du alt du trenger: Database, frontend, backend. Meteor gjør en fantastisk jobb med å binde det hele sammen.

  • Hastighet. Meteors intuitive pakkesystem gir deg mange verktøy du kanskje trenger for å perfeksjonere applikasjonen din.

  • Den har god støtte fra Meteor Developer Group, samt andre utviklere som bruker den. Du vil lett kunne finne ut eventuelle problemer du måtte ha og løse dem raskt.

I denne opplæringen vil vi oppnå følgende mål på Ubuntu 16.04:

  • Installer Node.js, vår Javascript-kjøretid.

  • Installer Meteor.js.

  • Installer MongoDB, Meteors foretrukne database.

  • Installer Apache, vår valgte omvendte proxy, og konfigurer domenet vårt hvis det er aktuelt.

  • Test nettsiden vår.

  • Sett opp nettsiden vår for produksjon.

Installerer Node.js

Du må først installere Node.js, som er vår JavaScript-tolk, og Meteors kjerne. Det vil tillate oss å kjøre Meteor og andre Node.js-applikasjoner vi kan ha i fremtiden. I denne situasjonen skal vi installere Node.js 8. For å starte nedlastingen, kjør ganske enkelt følgende i terminalen din.

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

Vent til nedlastingen og installasjonen er fullført.

Installerer MongoDB

Deretter skal vi installere databasen vår: MongoDB. MongoDB er en gratis, åpen kildekode NoSQL-dokumentdatabase, og Meteors foretrukne database. Den bruker et JSON-lignende format for sine dokumenter, i motsetning til strukturerte tabeller i en tradisjonell SQL-database.

Importer den offentlige MongoDB-nøkkelen som brukes av APT(Advanced Packaging Terminal). Dette lar APT verifisere pakken; i dette tilfellet, MongoDB.

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

Opprett den nødvendige listefilen for 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

Start installasjonen av MongoDB, og vent til installasjonen er ferdig.

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

Åpne systemd-tjenesten for redigering.

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

Kopier og lim inn følgende for å fullføre systemd-tjenesten.

[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

Bruk " Control-O" for å lagre, og " Control-X" for å avslutte.

Kjør MongoDB systemd-tjenesten ved å skrive sudo systemctl start mongodbinn terminalen din.

For å bekrefte at den har startet vellykket, skriv inn følgende.

sudo systemctl status mongodb

Du vil se at tjenesten er aktiv.

Installere og sette opp Apache2

Deretter vil vi installere Apache. Apache er en gratis og åpen kildekode-nettserverprogramvare, som også fungerer som en omvendt proxy, som er det vi skal bruke i denne opplæringen. En omvendt proxy er nødvendig for å binde vår Meteor.js-applikasjon til port 80. Node.js blokkerer programmer fra å kjøre på den porten uten root-tilgang. Apache kjører like rootautomatisk og binder til port 80, så vi trenger ikke å bekymre oss for det når det er på tide å kjøre nettstedet vårt.

Installer Apache.

sudo apt update && sudo apt install apache2

For å tillate tilgang til eksterne webporter som port 80, må vi konfigurere brannmuren vår for Apache. Vi gjør dette gjennom UFW(Ukomplisert brannmur).

sudo ufw allow 'Apache Full'

Dette vil gi tilgang til Apache Fullprofilen " ". Dette gir oss innkommende trafikk til port 80, som er det applikasjonen vår skal kjøre på.

Installere Meteor.js og lage vår basisapplikasjon

Nå skal vi installere vårt nettrammeverk: Meteor.js. Vi vil bruke et enkelt bash-skript levert av Meteor-teamet for å installere det.

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

Vent til installasjonen er ferdig. Det skriptet gjør, er at det laster ned Meteor fra det offisielle nettstedet og installerer det globalt, slik at vi kan bruke det fra hvor som helst. Når den er ferdig, kan vi opprette applikasjonskatalogen vår. Meteor har et hendig lite verktøy som vi kan bruke for å gjøre det, kalt meteor create. For å opprette applikasjonskatalogen din, skriv inn følgende.

meteor create <projectname>

Mappen vil bli opprettet med navnet angitt ( <projectname>).

Sette opp vår Apache reverse proxy

Nå som vi har konfigurert applikasjonskatalogen vår, kan vi fortsette med å sette opp vår omvendte proxy. Apache bruker en modul kalt mod_proxy, som implementerer en proxy for Apache.

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

Dette vil installere modulen og gjøre den tilgjengelig for Apache å bruke.

Deretter må vi aktivere alle de nødvendige modulene Apache trenger for å kjøre. Vi vil gjøre dette med a2enmod, et verktøy som muliggjør moduler for Apache. Disse modulene vil tillate oss å dra nytte av omvendt proxy. Bare skriv inn disse kommandoene i terminalen.

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

Etter det må vi deaktivere standard Apache-nettstedet fra å starte opp, slik at vi kan starte opp vårt eget. Ellers vil standard Apache-applikasjonen overstyre vår. For å deaktivere standardsiden, kjør ganske enkelt følgende.

sudo a2dissite 000-default

Nå skal vi lage vår virtuelle vertsfil. For å gjøre det, bare åpne et tekstredigeringsprogram.

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

Kopier og lim inn følgende.

<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: Ber Apache koble til port 80, som er det vi ønsker for nettapplikasjonen vår.

  • ProxyPass: IP-adressen til nettstedet du vil videresende til omvendt proxy. Dette vil mest sannsynlig være IP-en til din VPS

  • ServerName: Navnet på serveren din (standardnavnet er vanligvis localhost).

Når du er ferdig med å konfigurere de nødvendige innstillingene, bruk " Control-O" for å lagre og " Control-X" for å avslutte.

Kjører siden for første gang

For å teste og sikre at nettstedet kjører, skriv inn følgende i prosjektkatalogen.

meteor

Du vil se følgende utdata som viser at nettstedet ditt har startet vellykket.

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

Legg merke til at Meteor som standard lytter på port 3000.

Sette opp nettsiden vår for produksjon

For å sikre at appen vår kan fortsette å kjøre, vil vi bruke en systemd tjeneste. I likhet med det vi gjorde ovenfor med MongoDB, vil denne systemtjenesten sørge for at nettsiden vår starter opp hver gang systemet starter, og fortsetter å kjøre. Den vil også starte applikasjonen vår på nytt i tilfelle den krasjer uansett årsak. For å sette opp vår systemd-tjeneste, skriv inn følgende i terminalen din.

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

Her er hvordan du vil at filen skal se ut.

[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

Merk : Ikke glem å erstatte projectnamemed navnet på prosjektet, og yourusernamemed brukernavnet til VPS.

Her er noen nøkkellinjer du bør huske på.

  • WorkingDirectory: Katalogen til applikasjonen din.

  • Restart: Hvorvidt du skal starte applikasjonen på nytt eller ikke, stopper uansett årsak.

  • User: Ditt brukernavn.

  • Environment=PWD: Identisk med WorkingDirectory.

  • Environment=PORT: Porten som programmet kjører på. Standard er 3000.

Lagre og lukk filen.

Nå vil vi aktivere og starte tjenesten.

sudo systemctl enable <projectname>.service

Hvor <projectname>er navnet på tjenestefilen vi opprettet.

Deretter starter vi tjenesten.

sudo systemctl start <projectname>.service

Søknaden din starter. For å bekrefte at den har startet, kjør bare følgende.

sudo systemctl status <projectname>

Du vil se at den er aktiv, og bekrefter at tjenesten har startet.

Deretter vil vi sjekke ut nettsiden vår. Naviger til IP-adressen din i din valgte nettleser.

http://your-server-ip/

Du vil se Meteor-eksempelskjermen, som bekrefter at du har gjort alt riktig.

Administrere applikasjonen vår

Nå som vi har startet søknaden vår, må vi administrere den.

Starter applikasjonen på nytt

sudo systemctl restart <projectname>

Stopper applikasjonen

sudo systemctl stop <projectname>

Viser applikasjonens status

sudo systemctl status <projectname>

Viser loggene

journalctl -u <projectname>

Du har nå konfigurert MongoDB, Apache og Meteor, og opprettet en Meteor.js-webserver for produksjon. Nå er resten opp til deg, for å designe nettstedet ditt på front- og bakenden. Du har tilgang til MongoDB for å lagre alle data du måtte trenge, og Node.js, som tilbyr en rekke moduler tilgjengelig gjennom Node Package Manager ( NPM) for å styrke din backend ytterligere. For mer dokumentasjon, besøk gjerne Meteor-siden , hvor du videre kan lære hvordan du tilpasser nettsiden din til din smak. Du kan også referere til MongoDB-dokumentasjonen når du har å gjøre med databaseoperasjoner.

Legg igjen en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer