Sådan konfigureres en Meteor.js-webapplikation med MongoDB og Apache på Ubuntu 16.04 LTS

Meteor.js er en open source, JavaScript-ramme skrevet med Node.js i tankerne. Det er populært på grund af dets syn på at bygge webapplikationer i ren JavaScript. Meteor inkorporerer front-end JavaScript-understøttelse, der kører i webbrowseren, såvel som back-end JavaScript, som ville køre på værtsserveren. Det integrerer meget godt med front-end JavaScript-rammer, såsom React og Angular.js, samt MongoDB, en populær NoSQL-database. Et par store grunde til at vælge Meteor.js er som følger:

  • Meteor.js er en fuld stackramme. Så med det får du alt, hvad du nogensinde har brug for: Database, frontend, backend. Meteor gør et fantastisk stykke arbejde med at binde det hele sammen.

  • Fart. Meteors intuitive pakkesystem giver dig mange værktøjer, som du muligvis skal bruge for at perfektionere din applikation.

  • Det har god støtte fra Meteor Developer Group, såvel som andre udviklere, der bruger det. Du vil nemt være i stand til at finde ud af eventuelle problemer, du måtte have, og løse dem hurtigt.

I denne vejledning vil vi opnå følgende mål på Ubuntu 16.04:

  • Installer Node.js, vores Javascript-runtime.

  • Installer Meteor.js.

  • Installer MongoDB, Meteors foretrukne database.

  • Installer Apache, vores foretrukne omvendte proxy, og opsæt vores domæne, hvis det er relevant.

  • Test vores hjemmeside.

  • Opsæt vores hjemmeside til produktion.

Installerer Node.js

Du skal først installere Node.js, som er vores JavaScript-fortolker, og Meteors kerne. Det vil give os mulighed for at køre Meteor og andre Node.js-applikationer, vi måtte have i fremtiden. I denne situation vil vi installere Node.js 8. For at starte download skal du blot køre følgende i din terminal.

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

Vent på, at download og installation er fuldført.

Installerer MongoDB

Dernæst vil vi installere vores database: MongoDB. MongoDB er en gratis, open source NoSQL-dokumentdatabase og Meteors foretrukne database. Det bruger et JSON-lignende format til sine dokumenter, i modsætning til strukturerede tabeller i en traditionel SQL-database.

Importer den offentlige MongoDB-nøgle, der bruges af APT(Advanced Packaging Terminal). Dette giver APT mulighed for at verificere pakken; i dette tilfælde MongoDB.

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

Opret den nødvendige listefil til 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 installationen af ​​MongoDB, og vent på, at installationen er færdig.

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

Åbn systemd-tjenesten for redigering.

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

Kopiér og indsæt følgende for at fuldfø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

Brug " Control-O" for at gemme og " Control-X" for at afslutte.

Kør MongoDB systemd-tjenesten ved at indtaste sudo systemctl start mongodbdin terminal.

For at bekræfte, at den er startet, skal du skrive følgende.

sudo systemctl status mongodb

Du vil se, at tjenesten er aktiv.

Installation og opsætning af Apache2

Dernæst installerer vi Apache. Apache er en gratis og open source webserversoftware, som også fungerer som en omvendt proxy, hvilket er det, vi vil bruge i denne vejledning. En omvendt proxy er nødvendig for at binde vores Meteor.js-applikation til port 80. Node.js blokerer programmer i at køre på den port uden root-adgang. Apache kører rootautomatisk såvel som binder til port 80, så vi behøver ikke bekymre os om det, når det bliver tid til at køre vores hjemmeside.

Installer Apache.

sudo apt update && sudo apt install apache2

For at tillade adgang til eksterne webporte såsom port 80, skal vi konfigurere vores firewall til Apache. Det gør vi gennem UFW(Ukompliceret Firewall).

sudo ufw allow 'Apache Full'

Dette giver adgang til Apache Fullprofilen " ". Dette giver os den indgående trafik til port 80, hvilket er det, vores applikation vil køre på.

Installation af Meteor.js og oprettelse af vores basisapplikation

Nu vil vi installere vores webramme: Meteor.js. Vi vil bruge et simpelt bash-script leveret af Meteor-teamet til at installere det.

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

Vent på, at installationen er færdig. Grundlæggende er det, scriptet gør, at det downloader Meteor fra den officielle hjemmeside og installerer det globalt, så vi kan bruge det hvor som helst. Når det er færdigt, kan vi oprette vores applikationsmappe. Meteor har et praktisk lille værktøj, som vi kan bruge til at gøre det, kaldet meteor create. For at oprette din applikationsmappe skal du skrive følgende.

meteor create <projectname>

Mappen oprettes med det angivne navn ( <projectname>).

Opsætning af vores Apache reverse proxy

Nu hvor vi har konfigureret vores applikationsmappe, kan vi fortsætte med at konfigurere vores omvendte proxy. Apache bruger et modul kaldet mod_proxy, som implementerer en proxy for Apache.

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

Dette vil installere modulet og gøre det tilgængeligt for Apache at bruge.

Dernæst bliver vi nødt til at aktivere alle de nødvendige moduler, Apache skal køre. Det vil vi gøre med a2enmod, et værktøj, der muliggør moduler til Apache. Disse moduler giver os mulighed for at drage fordel af den omvendte proxy. Indtast blot disse kommandoer i din terminal.

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

Derefter bliver vi nødt til at deaktivere standard Apache-webstedet fra at starte op, så vi kan starte vores eget. Ellers vil standard Apache-applikationen tilsidesætte vores. For at deaktivere standardwebstedet skal du blot køre følgende.

sudo a2dissite 000-default

Nu vil vi oprette vores virtuelle værtsfil. For at gøre det skal du blot åbne en teksteditor.

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

Kopiér og indsæt 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: Beder Apache om at tilslutte til port 80, hvilket er det, vi ønsker til vores webapplikation.

  • ProxyPass: IP-adressen på det websted, du vil videresende til den omvendte proxy. Dette vil højst sandsynligt være IP'en på din VPS

  • ServerName: Navnet på din server (standardnavnet er normalt localhost).

Når du er færdig med at konfigurere de nødvendige indstillinger, skal du bruge " Control-O" for at gemme og " Control-X" for at afslutte.

Kører siden for første gang

For at teste og sikre dig, at hjemmesiden kører, skal du skrive følgende i projektmappen.

meteor

Du vil se følgende output, der viser, at dit websted er startet med succes.

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

Bemærk, at Meteor som standard lytter på port 3000.

Opsætning af vores hjemmeside til produktion

For at sikre, at vores app kan forblive kørende, vil vi bruge en systemd service. I lighed med det, vi gjorde ovenfor med MongoDB, vil denne systemtjeneste sørge for, at vores hjemmeside starter op, når vores system starter, og forbliver kørende. Det vil også genstarte vores applikation, i tilfælde af at det går ned af en eller anden grund. For at konfigurere vores systemd service skal du indtaste følgende i din terminal.

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

Her er, hvordan du vil have din fil til at se ud.

[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

Bemærk : Glem ikke at erstatte projectnamemed navnet på projektet og yourusernamemed brugernavnet på VPS.

Her er nogle nøglelinjer, du skal huske på.

  • WorkingDirectory: Biblioteket for din applikation.

  • Restart: Hvorvidt anvendelsen af ​​det skal genstartes eller ej, stopper uanset årsagen.

  • User: Dit brugernavn.

  • Environment=PWD: Identisk med WorkingDirectory.

  • Environment=PORT: Den port, som din applikation kører på. Standard er 3000.

Gem og luk filen.

Nu vil vi aktivere og starte tjenesten.

sudo systemctl enable <projectname>.service

Hvor <projectname>er navnet på den servicefil, vi oprettede.

Derefter starter vi tjenesten.

sudo systemctl start <projectname>.service

Din ansøgning starter. For at bekræfte, at den er startet, skal du bare køre følgende.

sudo systemctl status <projectname>

Du vil se, at den er aktiv, hvilket bekræfter, at tjenesten er startet med succes.

Dernæst vil vi tjekke vores hjemmeside ud. Naviger til din IP-adresse i din valgte webbrowser.

http://your-server-ip/

Du vil se Meteor-eksempelskærmen, der bekræfter, at du har gjort alt korrekt.

Håndtering af vores applikation

Nu hvor vi har startet vores ansøgning, bliver vi nødt til at administrere den.

Genstarter din applikation

sudo systemctl restart <projectname>

Stopper applikationen

sudo systemctl stop <projectname>

Viser applikationens status

sudo systemctl status <projectname>

Se logfilerne

journalctl -u <projectname>

Du har nu konfigureret MongoDB, Apache og Meteor og oprettet en Meteor.js-webserver til produktion. Nu er resten op til dig, at designe din hjemmeside på forsiden og bagenden. Du har adgang til MongoDB til at gemme alle data, du måtte have brug for, og Node.js, som tilbyder en række moduler tilgængelige via Node Package Manager ( NPM) for yderligere at styrke din backend. For mere dokumentation er du velkommen til at besøge Meteor-siden , hvor du yderligere kan lære, hvordan du tilpasser din hjemmeside til din smag. Du kan også henvise til MongoDB-dokumentationen , når du har med databaseoperationer at gøre.


Opsæt Cacti på Debian Jessie

Opsæt Cacti på Debian Jessie

Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed

Installer Lets Encrypt SSL på One-Click WordPress App

Installer Lets Encrypt SSL på One-Click WordPress App

Introduktion Lets Encrypt er en certifikatmyndighedstjeneste, der tilbyder gratis TLS/SSL-certifikater. Installationsprocessen forenkles af Certbot,

Konfigurer iRedMail på Debian Wheezy

Konfigurer iRedMail på Debian Wheezy

Bruger du et andet system? Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af Debian Wheezy. Du bør bruge en serve

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer

Tre gratis serverkontrolpaneler (hurtig installation)

Tre gratis serverkontrolpaneler (hurtig installation)

1. Virtualmin/Webmin Virtualmin er et kraftfuldt og fleksibelt webhotel kontrolpanel til Linux og UNIX systemer baseret på den velkendte Open Source web-base

Opsætning af en Yii-applikation på Ubuntu 14.04

Opsætning af en Yii-applikation på Ubuntu 14.04

Yii er en PHP-ramme, der giver dig mulighed for at udvikle applikationer hurtigere og nemmere. Installation af Yii på Ubuntu er ligetil, da du vil lære nøjagtigt

Brug af skærm på Ubuntu 14.04

Brug af skærm på Ubuntu 14.04

Screen er et program, der tillader flere terminalsessioner inden for et vindue. Dette giver dig mulighed for at simulere flere terminalvinduer, hvor det ma

Brug af Logrotate til at administrere logfiler

Brug af Logrotate til at administrere logfiler

Introduktion Logrotate er et Linux-værktøj, der forenkler administrationen af ​​logfiler. Det kører typisk en gang om dagen via et cron-job og administrerer logbasen

Konfiguration af statisk netværk og IPv6 på CentOS 7

Konfiguration af statisk netværk og IPv6 på CentOS 7

VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten

Kompiler og installer Nginx med PageSpeed-modulet på Debian 8

Kompiler og installer Nginx med PageSpeed-modulet på Debian 8

I denne artikel vil vi se, hvordan du kompilerer og installerer Nginx mainline fra de officielle kilder til Nginx med PageSpeed-modulet, som giver dig mulighed for at

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres Kanboard på Ubuntu 18.04 LTS

Sådan installeres Kanboard på Ubuntu 18.04 LTS

Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere

Sådan installeres Kanboard på Debian 9

Sådan installeres Kanboard på Debian 9

Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere

Sådan installeres Gitea på Debian 9

Sådan installeres Gitea på Debian 9

Bruger du et andet system? Gitea er et alternativt open source, selvhostet versionskontrolsystem drevet af Git. Gitea er skrevet på Golang og er

Sådan installeres Gitea på Ubuntu 18.04

Sådan installeres Gitea på Ubuntu 18.04

Bruger du et andet system? Gitea er et alternativt open source, selv-hostet versionskontrolsystem drevet af git. Gitea er skrevet på Golang og er

Sådan installeres Thelia 2.3 på Debian 9

Sådan installeres Thelia 2.3 på Debian 9

Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i

Patching the Dirty Cow Exploit på CentOS

Patching the Dirty Cow Exploit på CentOS

Hvad er Dirty Cow (CVE-2016-5195)? Dirty Cow-sårbarheden udnyttes gennem, hvordan Linux behandler kode. Det giver en uprivilegeret bruger mulighed for at gai

Konfigurer en ikke-rootbruger med Sudo Access på Ubuntu

Konfigurer en ikke-rootbruger med Sudo Access på Ubuntu

Det kan være farligt at have kun én bruger, som er root. Så lad os ordne det. Vultr giver os friheden til at gøre som vi vil med vores brugere og vores servere

Installer Adminer på Debian/Ubuntu

Installer Adminer på Debian/Ubuntu

Adminer er et letvægtsalternativ til phpMyAdmin. Til sammenligning er dens samlede pakkestørrelse 400KB mod 4,2 MB phpMyAdmin. I modsætning til phpMyAdmin, som

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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere