Postavite poslužitelj Keystone.js koristeći Nginx Reverse Proxy na Ubuntu 16.04

U ovom vodiču postavljat ćemo web poslužitelj s obrnutim proxyjem. CMS koji ćemo koristiti je Keystone.js, dobro poznati okvir web aplikacija baziran na Express.js. Obrnuti proxy koji ćemo koristiti je Nginx, koji je besplatni reverzni proxy otvorenog koda, kao i HTTP poslužitelj. Baza podataka koju ćemo koristiti je MongoDB, NoSQL baza podataka dokumenata. To će zahtijevati da imate postavljenu domenu s zapisima. Ako nemate taj set, samo naprijed i pobrinite se za to i vratite se na ovaj vodič.

Instaliranje čvora

Prvo ćemo instalirati Node.js, koji je Javascript interpreter baziran na Chrome V8 Javascript motoru.

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

Instalacija Nginxa

Zatim ćemo instalirati Nginx, naš obrnuti proxy.

sudo apt update
sudo apt install nginx

Ovo će ažurirati popise paketa i instalirati Nginx. Nakon što je instalacija gotova, mi ćemo postaviti naš projekt čvora.

Pokretanje našeg projekta Keystone

Kreirajte naš projekt čvora. Da biste to učinili, jednostavno stvorite novu mapu.

mkdir website

Zatim ćemo kreirati našu package.jsondatoteku. Da biste to učinili, jednostavno pokrenite npm initu svom terminalu, ispunite polja i odgovorite na " yes" za potvrdu. Nakon što kreirate package.jsondatoteku, instalirat ćemo sljedeće module čvora.

sudo npm install -g generator-keystone
sudo npm install -g yo

Nakon što je preuzimanje završeno, pokrenite sljedeće.

yo keystone

Ispunite potrebna polja. Tražit će od vas project name, template engine, emailza upravljačku ploču i tako dalje. Ako ne znate što odabrati, tada će zadane postavke biti u redu. Nakon što ste konfigurirali svoje keystone postavke, možemo testirati radi li se naš poslužitelj tako da upišete node keystonekako biste pokrenuli aplikaciju. Prema zadanim postavkama, vaša će aplikacija biti pokrenuta na localhost, na portu 3000. Imajte na umu da ako nemate instaliran MongoDB, baza podataka vam neće odmah biti dostupna. Kako ga instalirati možete naučiti kasnije u vodiču.

Ovdje je osnovni izgled direktorija za Keystone.js:

  • /lib - Ovdje ćete pohraniti svoje prilagođene biblioteke i drugi kod.

  • /models- Ovdje ćete pohraniti modele baze podataka vaše aplikacije. KeystoneJS koristi MongoDB kao pružatelja baze podataka.

  • /public - Ovdje će se pohranjivati ​​vaše statičke datoteke (CSS, JS, slike i tako dalje).

  • /routes/api - Ovdje će biti pohranjeni API kontroleri vaše aplikacije.

  • /routes.views - Kontroleri prikaza aplikacije bit će pohranjeni ovdje.

  • /templates - Ovdje će biti pohranjene sve datoteke predložaka vaše aplikacije.

  • /updates - Ovdje će biti pohranjene vaše migracijske skripte.

  • package.json - Ovo je vaša npm konfiguracijska datoteka koju je generator generirao za nas.

  • keystone.js - Naša glavna početna datoteka, pokrećemo je kada pokrenemo web stranicu.

Inicijalizacija naše baze podataka

Kao što je ranije spomenuto, naša baza podataka koju ćemo koristiti je MongoDB, što je pouzdana NoSQL, dokumentno orijentirana baza podataka. Ako već imate instaliran MongoDB, možete preskočiti ovaj odjeljak. Ako ne, evo kako ga instalirati na Ubuntu 16.04.

Uvezite javni ključ koji se koristi za mongoDB paket.

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

Napravite datoteku s popisom koja se koristi za instalaciju paketa.

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

Ažurirajte svoje popise paketa pomoću apt.

sudo apt update

Konačno, instalirajte MongoDB.

sudo apt install mongodb-org -y

Kada se ova instalacija završi, pokrenite MongoDB.

sudo service mongod start

Ovo će pokrenuti MongoDB proces na portu 27017.

MongoDB će se koristiti u cijeloj aplikaciji i koristit će se za pohranjivanje informacija koje koristimo za naše modele, na primjer Usermodel. Keystone ga koristi kao svoju bazu podataka po izboru i trenutno ne možete koristiti druge dobavljače baza podataka.

Instalacija PM2

Sada je vrijeme za instaliranje PM2 (Process Manager 2.) PM2 je upravitelj procesa za Node.js aplikacije, u obliku npm modula. Omogućuje vam jednostavan način za upravljanje aplikacijama i njihovo pokretanje u pozadini. Budući da je u NPM-u, sve što moramo učiniti da ga instaliramo je pokrenuti sljedeće.

sudo npm install pm2 -g

To govori npm-u da ga instalira globalno, tako da ga možemo koristiti bilo gdje u našem sustavu.

Pokretanje/upravljanje aplikacijom na PM2

Ranije smo pokrenuli našu web aplikaciju s node keystone. S PM2 je malo drugačije. Sada pokrećemo našu aplikaciju čvora sa sljedećim.

pm2 start keystone.js

Ovo će dodati našu PM2 aplikaciju na naš popis procesa, a prikazat će se mali okvir tako da možete vidjeti da je doista na mreži. Obratite pažnju na okvir označen idza vaš proces. Držite ovo blizu, jer ćemo kasnije to mnogo spominjati.

Da biste vidjeli zapisnike za svoju aplikaciju.

pm2 logs [id]

Na primjer, pm2 logs 0ako je ovo vaša prva PM2 aplikacija.

Za zaustavljanje vaše web aplikacije u bilo kojem trenutku.

pm2 stop [id]

Za potpuno brisanje aplikacije.

pm2 delete [id]

PM2 čak ima nadzornu ploču za nadzor ako želite vidjeti neke osnovne statistike za svoju aplikaciju, a pomoću toga joj možete pristupiti.

pm2 monit

Ovo će pokazati neke osnovne informacije kao što su korištenje RAM-a, korištenje CPU-a i vrijeme neprekidnog rada.

Sjajna značajka koju PM2 nudi je watching. U biti, gledanje je kada PM2 automatski detektira promjene u bilo kojoj od datoteka u istom direktoriju kao i vaša početna datoteka i automatski će ponovno pokrenuti vašu aplikaciju. Da biste ga omogućili, jednostavno ponovno pokrenite aplikaciju, ali joj dostavite zastavicu za sat.

pm2 restart [id] --watch

Da biste onemogućili gledanje nakon što je omogućeno, jednostavno ponovno pokrenite istu naredbu i gledanje će biti onemogućeno.

U ovom ćemo tutorialu napustiti gledanje.

Postavljanje vašeg obrnutog proxyja

Provjerite jeste li instalirali Nginx. Ako iz nekog razloga nije, pogledajte gore navedene korake.

Prilagodite postavke vatrozida. Na Ubuntu ufwje službeni vatrozid. Prema zadanim postavkama, veze su blokirane na portu 80. Moramo dodati iznimku za Nginx na portu 80, na kojem će se pokrenuti naša web aplikacija.

sudo ufw allow 'Nginx HTTP'

Provjerite radi li vaš Nginx poslužitelj.

systemctl status nginx

U Activeodjeljku, ako vidite active (running), onda ste spremni. Ako ne, možete pokušati ponovno pokrenuti uslugu.

systemctl restart nginx

Izbrišite zadanu konfiguracijsku datoteku Nginxa.

sudo rm /etc/nginx/sites-available/default

Napravite novi i jednostavno ga nazovite node.

sudo nano /etc/nginx/sites-available/node

Zalijepite sljedeće u datoteku i zamijenite example.comdomenom svoje web stranice.

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

Imajte na umu da proxy_passoznačava IP na kojem se naša aplikacija Keystone izvodi lokalno, a to je localhostna portu 3000. listen 80je port na koji želimo da aplikacija bude usmjerena, a to je u ovom slučaju port 80.

Zatim moramo stvoriti simboličku vezu ili simboličku vezu na mapu pod nazivom sites-enabled. Razlika između sites-enabledi sites-availableje u tome što sites-enabledje Nginx zapravo učitava.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

Sada će vaša konfiguracijska datoteka sites-availablebiti spremna za korištenje i bit će učitana iz sites-enabled. Da biste primijenili konfiguraciju tako da stupi na snagu, jednostavno ponovno pokrenite Nginx.

sudo systemctl restart nginx

Konačno, ponovno pokrenite svoju PM2 aplikaciju

pm2 restart [id]

Sada možete navigirati do svoje domene u pregledniku i vidjet ćete Welcome to Keystonezaslon s panelom na koji se možete prijaviti.

Ako ga vidite, onda ste uspješno postavili Node.js proizvodni web poslužitelj. Ako niste, možda ste neki korak napravili pogrešno i možda ćete se htjeti vratiti i pažljivo slijediti svaki korak.

Možete saznati više o Nginxu ako posjetite njihovu web stranicu .

Nadam se da ste uživali u ovom vodiču i nadam se da vam je ovo pomoglo da postavite vlastiti web poslužitelj za proizvodnju na vašem Vultr VPS-u.


Kako instalirati Thelia 2.3 na Debian 9

Kako instalirati Thelia 2.3 na Debian 9

Korištenje drugog sustava? Thelia je alat otvorenog koda za izradu web stranica e-poslovanja i upravljanje online sadržajem napisanim u PHP-u. Thelia izvorni kod i

Kako instalirati Microweber na CentOS 7

Kako instalirati Microweber na CentOS 7

Korištenje drugog sustava? Microweber je CMS i internetska trgovina otvorenog koda povuci i ispusti. Izvorni kod Microwebera nalazi se na GitHubu. Ovaj vodič će vam pokazati

Instalacija Microwebera na Ubuntu 16.04

Instalacija Microwebera na Ubuntu 16.04

Korištenje drugog sustava? Microweber je CMS i internetska trgovina otvorenog koda povuci i ispusti. Izvorni kod Microwebera nalazi se na GitHubu. Ovaj vodič će vam pokazati

Kako instalirati dotCMS na Ubuntu 16.04

Kako instalirati dotCMS na Ubuntu 16.04

Korištenje drugog sustava? DotCMS je open-source sustav za upravljanje sadržajem poslovnog razreda napisan na Javi. Sadrži gotovo sve potrebne značajke t

Kako instalirati Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Kako instalirati Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Korištenje drugog sustava? Pagekit 1.0 CMS je prekrasan, modularan, proširiv i lagan, besplatan i otvoreni sustav za upravljanje sadržajem (CMS) s

Kako instalirati BigTree CMS na Fedora 26 LAMP VPS

Kako instalirati BigTree CMS na Fedora 26 LAMP VPS

Korištenje drugog sustava? BigTree CMS 4.2 brz je i lagan, besplatan i otvoreni izvor, sustav upravljanja sadržajem (CMS) poslovnog ranga s opsežnim

Instalacija Pagekit CMS-a na Ubuntu 16.04 LTS

Instalacija Pagekit CMS-a na Ubuntu 16.04 LTS

Korištenje drugog sustava? Pagekit je CMS otvorenog koda napisan u PHP-u. Izvorni kod Pagekita nalazi se na GitHubu. Ovaj vodič će vam pokazati kako instalirati

Kako instalirati PyroCMS na Ubuntu 16.04

Kako instalirati PyroCMS na Ubuntu 16.04

Korištenje drugog sustava? PyroCMS je CMS otvorenog koda napisan u PHP-u. PyroCMS izvorni kod se nalazi na GitHubu. U ovom vodiču dobro prošetajte cijelim

Kako instalirati Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Kako instalirati Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Korištenje drugog sustava? Subrion 4.1 CMS je moćan i fleksibilan sustav upravljanja sadržajem otvorenog koda (CMS) koji donosi intuitivan i jasan sadržaj

Kako instalirati Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Kako instalirati Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Korištenje drugog sustava? Backdrop CMS 1.8.0 je jednostavan i fleksibilan, prilagođen mobilnim uređajima, besplatan i otvoreni sustav za upravljanje sadržajem (CMS) koji nam omogućuje

Kako instalirati Roadiz CMS na Debian 9

Kako instalirati Roadiz CMS na Debian 9

Korištenje drugog sustava? Uvod Roadiz je moderan CMS dizajniran za rukovanje mnogim vrstama usluga. Na temelju Symfony komponenti i Doctrine ORM, tj

Instalacija Microwebera na Debian 9

Instalacija Microwebera na Debian 9

Korištenje drugog sustava? Microweber je CMS i internetska trgovina otvorenog koda povuci i ispusti. Izvorni kod Microwebera nalazi se na GitHubu. Ovaj vodič će vam pokazati

Kako instalirati Grav CMS na Fedora 28

Kako instalirati Grav CMS na Fedora 28

Korištenje drugog sustava? Grav je CMS otvorenog koda s ravnim datotekama napisan u PHP-u. Izvorni kod Grav-a javno se nalazi na GitHubu. Ovaj vodič će vam pokazati kako t

Kako instalirati Grav CMS na Debian 9

Kako instalirati Grav CMS na Debian 9

Korištenje drugog sustava? Grav je CMS otvorenog koda s ravnim datotekama napisan u PHP-u. Izvorni kod Grav-a javno se nalazi na GitHubu. Ovaj vodič će vam pokazati kako t

Kako instalirati Automad CMS na CentOS 7

Kako instalirati Automad CMS na CentOS 7

Korištenje drugog sustava? Automad je open source sustav za upravljanje sadržajem (CMS) i predložak napisan u PHP-u. Izvorni kod Automada i

Kako instalirati Raneto na Ubuntu 17.10

Kako instalirati Raneto na Ubuntu 17.10

Raneto je besplatna baza znanja otvorenog koda, izgrađena na Node.js koja je jednostavna za postavljanje i korištenje, kao i za administraciju. Kategorije i stranice ar

How to Install Thelia 2.3 on Ubuntu 16.04

How to Install Thelia 2.3 on Ubuntu 16.04

Using a Different System? Thelia is an open source tool for creating e-business websites and managing online content written in PHP. Thelia source code i

Kako instalirati listopad 1.0 CMS na Debian 9 LAMP VPS

Kako instalirati listopad 1.0 CMS na Debian 9 LAMP VPS

Korištenje drugog sustava? Listopad 1.0 CMS je jednostavan i pouzdan, besplatan i otvoreni sustav za upravljanje sadržajem (CMS) izgrađen na Laravel okviru

Kako instalirati ImpressPages CMS 5.0 na Ubuntu 16.04 LAMP VPS

Kako instalirati ImpressPages CMS 5.0 na Ubuntu 16.04 LAMP VPS

Korištenje drugog sustava? ImpressPages CMS 5.0 je jednostavan i učinkovit, besplatan i otvorenog koda, prilagođen korisniku, baziran na MVC-u, sustav za upravljanje sadržajem (CMS)

Kako instalirati CMS Made Simple 2.2 na Debian 9 LAMP VPS

Kako instalirati CMS Made Simple 2.2 na Debian 9 LAMP VPS

Korištenje drugog sustava? CMS Made Simple 2.2 je fleksibilan i proširiv, besplatan i otvoreni sustav za upravljanje sadržajem (CMS) inteligentno dizajniran za b

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više