Nastavite strežnik Keystone.js z uporabo Nginx Reverse Proxy v Ubuntu 16.04

V tej vadnici bomo postavili spletni strežnik z povratnim proxyjem. CMS, ki ga bomo uporabljali, je Keystone.js, dobro znan okvir spletne aplikacije, ki temelji na Express.js. Povratni proxy, ki ga bomo uporabljali, je Nginx, ki je brezplačen in odprtokoden povratni proxy ter strežnik HTTP. Baza podatkov, ki jo bomo uporabljali, je MongoDB, podatkovna baza dokumentov NoSQL. To bo zahtevalo, da imate nastavljeno domeno z zapisi. Če tega kompleta nimate, potem poskrbite za to in se vrnite k tej vadnici.

Namestitev Node

Najprej bomo namestili Node.js, ki je tolmač Javascript, ki temelji na motorju Chrome V8 Javascript.

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

Namestitev Nginxa

Nato bomo namestili Nginx, naš povratni proxy.

sudo apt update
sudo apt install nginx

To bo posodobilo sezname paketov in namestilo Nginx. Ko je namestitev končana, bomo nastavili naš projekt vozlišča.

Inicializacija našega projekta Keystone

Ustvarite naš projekt vozlišča. Če želite to narediti, preprosto ustvarite novo mapo.

mkdir website

Nato bomo ustvarili našo package.jsondatoteko. Če želite to narediti, preprosto zaženite npm initsvoj terminal, izpolnite polja in odgovorite z » yes« za potrditev. Ko ustvarite package.jsondatoteko, bomo namestili naslednje module vozlišča.

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

Ko so končani s prenosom, zaženite naslednje.

yo keystone

Izpolnite zahtevana polja. Prosil vas bo za project name, template engine, emailza nadzorno ploščo itd. Če ne veste, kaj izbrati, bodo privzete nastavitve v redu. Ko konfigurirate nastavitev keystone, lahko preverimo, ali naš strežnik deluje, tako da vnesete node keystoneza zagon aplikacije. Privzeto se bo vaša aplikacija izvajala na localhost, na vratih 3000. Upoštevajte, da če nimate nameščenega MongoDB, vam baza podatkov ne bo na voljo takoj. Kako ga namestiti, se lahko naučite pozneje v vadnici.

Tu je osnovna postavitev imenika za Keystone.js:

  • /lib - Tu boste shranili svoje knjižnice po meri in drugo kodo.

  • /models- Tu boste shranili modele baze podatkov vaše aplikacije. KeystoneJS uporablja MongoDB kot ponudnika baze podatkov.

  • /public - Tukaj bodo shranjene vaše statične datoteke (CSS, JS, slike itd.).

  • /routes/api - Tu bodo shranjeni krmilniki API vaše aplikacije.

  • /routes.views - Tukaj bodo shranjeni krmilniki pogleda aplikacij.

  • /templates - Tu bodo shranjene vse datoteke predlog vaše aplikacije.

  • /updates - Tukaj bodo shranjeni vaši migracijski skripti.

  • package.json - To je vaša konfiguracijska datoteka npm, ki jo je generator ustvaril za nas.

  • keystone.js - Naša glavna začetna datoteka, to zaženemo, ko zaženemo spletno mesto.

Inicializacija naše baze podatkov

Kot smo že omenili, je naša baza podatkov, ki jo bomo uporabljali, MongoDB, ki je zanesljiva NoSQL, dokumentno usmerjena baza podatkov. Če že imate nameščen MongoDB, lahko ta razdelek preskočite. Če ne, potem je tukaj opisano, kako ga namestiti v Ubuntu 16.04.

Uvozite javni ključ, uporabljen za paket mongoDB.

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

Ustvarite datoteko s seznamom, ki se uporablja za namestitev 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

Posodobite svoje sezname paketov z uporabo apt.

sudo apt update

Končno namestite MongoDB.

sudo apt install mongodb-org -y

Ko je namestitev končana, zaženite MongoDB.

sudo service mongod start

To bo začelo postopek MongoDB na vratih 27017.

MongoDB bo uporabljen v celotni aplikaciji in bo uporabljen za shranjevanje informacij, ki jih uporabljamo za naše modele, na primer Usermodel. Keystone ga uporablja kot svojo izbrano bazo podatkov in trenutno ne morete uporabljati drugih ponudnikov baz podatkov.

Namestitev PM2

Zdaj je čas za namestitev PM2 (Process Manager 2.) PM2 je upravljalnik procesov za aplikacije Node.js, v obliki modula npm. Zagotavlja enostaven način za upravljanje aplikacij in njihovo izvajanje v ozadju. Ker je v NPM, vse, kar moramo storiti, da ga namestimo, je zagnati naslednje.

sudo npm install pm2 -g

To pove npm, naj ga namesti globalno, tako da ga lahko uporabljamo kjer koli v našem sistemu.

Zagon/upravljanje aplikacije na PM2

Prej smo zagnali našo spletno aplikacijo z node keystone. Pri PM2 je malo drugače. Zdaj zaženemo našo aplikacijo vozlišča z naslednjim.

pm2 start keystone.js

To bo dodalo našo aplikacijo PM2 na naš seznam procesov in prikazalo se bo majhno polje, tako da boste lahko videli, da je res na spletu. Upoštevajte polje, označeno idza vaš postopek. Naj bo to blizu, saj se bomo pozneje veliko omenjali.

Če si želite ogledati dnevnike za vašo aplikacijo.

pm2 logs [id]

Na primer, pm2 logs 0če je to vaša prva aplikacija PM2.

Če želite kadar koli ustaviti svojo spletno aplikacijo.

pm2 stop [id]

Za popolno brisanje aplikacije.

pm2 delete [id]

PM2 ima celo nadzorno ploščo za spremljanje, če si želite ogledati nekaj osnovnih statističnih podatkov za svojo aplikacijo in s tem lahko dostopate do nje.

pm2 monit

To bo prikazalo nekaj osnovnih informacij, kot so uporaba RAM-a, poraba CPU-ja in čas delovanja.

Odlična lastnost, ki jo ponuja PM2, je watching. V bistvu je opazovanje, ko PM2 samodejno zazna spremembe v kateri koli datoteki v istem imeniku kot vaša začetna datoteka, in samodejno znova zažene vašo aplikacijo. Če ga želite omogočiti, preprosto znova zaženite aplikacijo, vendar ji podajte zastavico za uro.

pm2 restart [id] --watch

Če želite onemogočiti gledanje, potem ko je bilo omogočeno, preprosto znova zaženite isti ukaz in gledanje bo onemogočeno.

V tej vadnici bomo pustili opazovanje.

Nastavitev povratnega proxyja

Prepričajte se, da imate nameščen Nginx. Če iz nekega razloga ni, glejte zgornje korake.

Prilagodite nastavitve požarnega zidu. V Ubuntuju ufwje uradni požarni zid. Privzeto so povezave blokirane na vratih 80. Dodati moramo izjemo za Nginx na vratih 80, na katerih se bo izvajala naša spletna aplikacija.

sudo ufw allow 'Nginx HTTP'

Preverite, ali vaš strežnik Nginx deluje.

systemctl status nginx

Če v Activerazdelku vidite active (running), potem ste pripravljeni. Če ne, lahko poskusite znova zagnati storitev.

systemctl restart nginx

Izbrišite privzeto konfiguracijsko datoteko Nginx.

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

Ustvarite novega in ga preprosto pokličite node.

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

V datoteko prilepite naslednje in zamenjajte example.comz domeno vašega spletnega mesta.

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";
    }
}

Upoštevajte, da proxy_passoznačuje IP, na katerem se naša aplikacija Keystone izvaja lokalno, kar je localhostna vratih 3000. listen 80je vrata, na katera želimo, da je aplikacija usmerjena, kar je v tem primeru port 80.

Nato moramo ustvariti simbolno povezavo ali simbolno povezavo do mape, imenovane sites-enabled. Razlika med sites-enabledin sites-availableje v tem, da sites-enabledga dejansko naloži Nginx.

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

Zdaj bo vaša konfiguracijska datoteka sites-availablepripravljena za uporabo in bo naložena iz sites-enabled. Če želite konfiguracijo uporabiti tako, da začne veljati, preprosto znova zaženite Nginx.

sudo systemctl restart nginx

Končno znova zaženite aplikacijo PM2

pm2 restart [id]

Zdaj se lahko v brskalniku pomaknete do svoje domene in videli boste Welcome to Keystonezaslon s ploščo, na katero se lahko prijavite.

Če ga vidite, ste uspešno nastavili produkcijski spletni strežnik Node.js. Če ne, potem ste morda naredili korak napačno in se boste morda želeli vrniti in natančno slediti vsakemu koraku.

Več o Nginxu lahko izveste tako, da obiščete njihovo spletno mesto .

Upam, da vam je bila ta vadnica všeč in upam, da vam je to pomagalo vzpostaviti lasten spletni strežnik za produkcijo na vašem Vultr VPS.


Kako namestiti Thelia 2.3 na Debian 9

Kako namestiti Thelia 2.3 na Debian 9

Uporaba drugega sistema? Thelia je odprtokodno orodje za ustvarjanje spletnih strani e-poslovanja in upravljanje spletnih vsebin, napisanih v PHP. Izvorna koda Thelia i

Kako namestiti Microweber na CentOS 7

Kako namestiti Microweber na CentOS 7

Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal

Namestitev Microweberja na Ubuntu 16.04

Namestitev Microweberja na Ubuntu 16.04

Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal

Kako namestiti dotCMS na Ubuntu 16.04

Kako namestiti dotCMS na Ubuntu 16.04

Uporaba drugega sistema? DotCMS je odprtokodni sistem za upravljanje vsebin za podjetja, napisan v Javi. Vsebuje skoraj vse zahtevane funkcije t

Kako namestiti Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Kako namestiti Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? Pagekit 1.0 CMS je lep, modularen, razširljiv in lahek, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS) z

Kako namestiti BigTree CMS na Fedora 26 LAMP VPS

Kako namestiti BigTree CMS na Fedora 26 LAMP VPS

Uporaba drugega sistema? BigTree CMS 4.2 je hiter in lahek, brezplačen in odprtokoden sistem za upravljanje vsebin podjetja (CMS) z obsežnim

Namestitev Pagekit CMS na Ubuntu 16.04 LTS

Namestitev Pagekit CMS na Ubuntu 16.04 LTS

Uporaba drugega sistema? Pagekit je odprtokodni CMS, napisan v PHP. Izvorna koda Pagekit gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti

Kako namestiti PyroCMS na Ubuntu 16.04

Kako namestiti PyroCMS na Ubuntu 16.04

Uporaba drugega sistema? PyroCMS je odprtokodni CMS, napisan v PHP. Izvorna koda PyroCMS gostuje na GitHubu. V tem vodniku se dobro sprehodite po celem

Kako namestiti Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Kako namestiti Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? Subrion 4.1 CMS je zmogljiv in prilagodljiv odprtokodni sistem za upravljanje vsebine (CMS), ki prinaša intuitivno in jasno vsebino.

Kako namestiti Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Kako namestiti Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Uporaba drugega sistema? Backdrop CMS 1.8.0 je preprost in prilagodljiv, mobilnim prijazen, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS), ki nam omogoča

Kako namestiti Roadiz CMS na Debian 9

Kako namestiti Roadiz CMS na Debian 9

Uporaba drugega sistema? Uvod Roadiz je sodoben CMS, zasnovan za obdelavo številnih vrst storitev. Na podlagi komponent Symfony in Doctrine ORM, tj

Namestitev Microweberja v Debian 9

Namestitev Microweberja v Debian 9

Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal

Kako namestiti Grav CMS na Fedora 28

Kako namestiti Grav CMS na Fedora 28

Uporaba drugega sistema? Grav je odprtokodni CMS s ploščatimi datotekami, napisan v PHP. Izvorna koda Grav je javno gostovana na GitHubu. Ta vodnik vam bo pokazal, kako t

Kako namestiti Grav CMS na Debian 9

Kako namestiti Grav CMS na Debian 9

Uporaba drugega sistema? Grav je odprtokodni CMS s ploščatimi datotekami, napisan v PHP. Izvorna koda Grav je javno gostovana na GitHubu. Ta vodnik vam bo pokazal, kako t

Kako namestiti Automad CMS na CentOS 7

Kako namestiti Automad CMS na CentOS 7

Uporaba drugega sistema? Automad je odprtokodni sistem za upravljanje vsebin (CMS), ki temelji na datotekah, in mehanizem za predloge, napisan v PHP. Izvorna koda Automad i

Kako namestiti Raneto na Ubuntu 17.10

Kako namestiti Raneto na Ubuntu 17.10

Raneto je brezplačna in odprtokodna baza znanja, zgrajena na Node.js, ki je enostavna za nastavitev in uporabo ter enostavna za upravljanje. Kategorije in strani ar

Kako namestiti Thelia 2.3 na Ubuntu 16.04

Kako namestiti Thelia 2.3 na Ubuntu 16.04

Uporaba drugega sistema? Thelia je odprtokodno orodje za ustvarjanje spletnih strani e-poslovanja in upravljanje spletnih vsebin, napisanih v PHP. Izvorna koda Thelia i

Kako namestiti oktober 1.0 CMS na Debian 9 LAMP VPS

Kako namestiti oktober 1.0 CMS na Debian 9 LAMP VPS

Uporaba drugega sistema? October 1.0 CMS je preprost in zanesljiv, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS), zgrajen na ogrodju Laravel

Kako namestiti ImpressPages CMS 5.0 na Ubuntu 16.04 LAMP VPS

Kako namestiti ImpressPages CMS 5.0 na Ubuntu 16.04 LAMP VPS

Uporaba drugega sistema? ImpressPages CMS 5.0 je preprost in učinkovit, brezplačen in odprtokoden, uporabniku prijazen sistem za upravljanje vsebine (CMS), ki temelji na MVC.

Kako namestiti CMS Made Simple 2.2 na Debian 9 LAMP VPS

Kako namestiti CMS Made Simple 2.2 na Debian 9 LAMP VPS

Uporaba drugega sistema? CMS Made Simple 2.2 je prilagodljiv in razširljiv, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS), ki je inteligentno zasnovan za

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več