Nastavte server Keystone.js pomocou reverzného proxy Nginx na Ubuntu 16.04

V tomto návode nastavíme webový server s reverzným proxy. CMS, ktorý budeme používať, je Keystone.js, dobre známy rámec webových aplikácií založený na Express.js. Reverzný proxy, ktorý budeme používať, je Nginx, čo je bezplatný a open source reverzný proxy server, ako aj HTTP server. Databáza, ktorú budeme používať, je MongoDB, databáza dokumentov NoSQL. Vyžaduje si to, aby ste mali nastavenú doménu so záznamami. Ak túto súpravu nemáte, pokračujte a postarajte sa o to a vráťte sa k tomuto návodu.

Inštalácia Node

Najprv nainštalujeme Node.js, čo je interpret Javascript založený na jadre Javascript Chrome V8.

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

Inštalácia Nginx

Ďalej nainštalujeme Nginx, náš reverzný proxy.

sudo apt update
sudo apt install nginx

Tým sa aktualizujú zoznamy balíkov a nainštaluje sa Nginx. Po dokončení inštalácie nastavíme náš projekt uzla.

Inicializuje sa náš projekt Keystone

Vytvorte náš projekt uzla. Ak to chcete urobiť, jednoducho vytvorte nový priečinok.

mkdir website

Potom vytvoríme náš package.jsonsúbor. Ak to chcete urobiť, jednoducho spustite npm initsvoj terminál, vyplňte polia a yespotvrďte odpoveďou „ “. Po vytvorení package.jsonsúboru nainštalujeme nasledujúce moduly uzlov.

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

Po dokončení sťahovania spustite nasledujúce.

yo keystone

Vyplňte požadované polia. To vás požiadať, aby project namesa template engine, emailna ovládacom paneli, a tak ďalej. Ak neviete, čo vybrať, predvolené nastavenia budú v poriadku. Po nakonfigurovaní nastavenia základného kameňa môžeme otestovať, či je náš server spustený, zadaním node keystonea spustením vašej aplikácie. V predvolenom nastavení bude vaša aplikácia spustená na localhost, na porte 3000. Upozorňujeme, že ak nemáte nainštalovaný MongoDB, databáza pre vás nebude dostupná hneď. Ako ho nainštalovať, sa dozviete neskôr v návode.

Tu je základné rozloženie adresára pre Keystone.js:

  • /lib - Tu budete ukladať svoje vlastné knižnice a ďalší kód.

  • /models- Tu budete ukladať databázové modely vašej aplikácie. KeystoneJS používa MongoDB ako poskytovateľa databázy.

  • /public - Tu budú uložené vaše statické súbory (CSS, JS, obrázky atď.).

  • /routes/api - Tu budú uložené ovládače API vašej aplikácie.

  • /routes.views - Tu budú uložené ovládače zobrazenia aplikácie.

  • /templates - Tu budú uložené všetky súbory šablón vašej aplikácie.

  • /updates - Tu budú uložené vaše migračné skripty.

  • package.json - Toto je váš konfiguračný súbor npm, ktorý nám generátor vygeneroval.

  • keystone.js - Náš hlavný štartovací súbor, spustíme ho pri spustení webovej stránky.

Inicializuje sa naša databáza

Ako už bolo spomenuté, naša databáza, ktorú budeme používať, je MongoDB, čo je spoľahlivá NoSQL databáza orientovaná na dokumenty. Ak už máte nainštalovaný MongoDB, môžete túto časť preskočiť. Ak nie, tu je návod, ako ho nainštalovať na Ubuntu 16.04.

Importujte verejný kľúč použitý pre balík mongoDB.

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

Vytvorte súbor so zoznamom, ktorý sa použije na inštaláciu balíka.

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

Aktualizujte zoznamy balíkov pomocou apt.

sudo apt update

Nakoniec nainštalujte MongoDB.

sudo apt install mongodb-org -y

Po dokončení inštalácie spustite MongoDB.

sudo service mongod start

Tým sa spustí proces MongoDB na porte 27017.

MongoDB sa bude používať v celej aplikácii a bude slúžiť na ukladanie informácií, ktoré používame pre naše modely, napríklad Usermodel. Keystone ju používa ako databázu podľa vlastného výberu a v súčasnosti nemôžete používať iných predajcov databáz.

Inštalácia PM2

Teraz je čas nainštalovať PM2 (Process Manager 2.) PM2 je správca procesov pre aplikácie Node.js vo forme modulu npm. Poskytuje jednoduchý spôsob, ako spravovať svoje aplikácie a spúšťať ich na pozadí. Pretože je v NPM, všetko, čo musíme urobiť, aby sme ho nainštalovali, je spustiť nasledovné.

sudo npm install pm2 -g

Toto povie npm, aby ho nainštaloval globálne, takže ho môžeme použiť kdekoľvek v našom systéme.

Spustenie/správa aplikácie na PM2

Predtým sme našu webovú aplikáciu spúšťali pomocou node keystone. S PM2 je to trochu iné. Teraz spustíme našu aplikáciu uzla s nasledujúcim.

pm2 start keystone.js

Tým sa naša aplikácia PM2 pridá do nášho zoznamu procesov a zobrazí sa malý rámček, aby ste videli, že je skutočne online. Všimnite si políčko označené idpre váš proces. Držte sa toho blízko, pretože neskôr na to budeme veľa odkazov.

Ak chcete zobraziť denníky vašej aplikácie.

pm2 logs [id]

Napríklad, pm2 logs 0ak je toto vaša prvá aplikácia PM2.

Ak chcete kedykoľvek zastaviť svoju webovú aplikáciu.

pm2 stop [id]

Ak chcete úplne odstrániť vašu aplikáciu.

pm2 delete [id]

PM2 má dokonca monitorovací panel, ak chcete vidieť niektoré základné štatistiky pre vašu aplikáciu, a môžete k nim pristupovať.

pm2 monit

Zobrazí sa niektoré základné informácie, ako je využitie pamäte RAM, využitie procesora a doba prevádzky.

Skvelá funkcia, ktorú PM2 ponúka, je watching. Sledovanie je v podstate vtedy, keď PM2 automaticky zistí zmeny ktoréhokoľvek zo súborov v rovnakom adresári ako váš štartovací súbor a automaticky reštartuje vašu aplikáciu. Ak to chcete povoliť, jednoducho reštartujte aplikáciu, ale odovzdajte jej príznak sledovania.

pm2 restart [id] --watch

Ak chcete zakázať sledovanie po jeho povolení, jednoducho znova spustite rovnaký príkaz a sledovanie sa deaktivuje.

V tomto návode prestaneme sledovať.

Nastavenie reverzného proxy servera

Uistite sa, že máte nainštalovaný Nginx. Ak z nejakého dôvodu nie je, pozrite si vyššie uvedené kroky.

Upravte nastavenia brány firewall. Na Ubuntu ufwje oficiálny firewall. V predvolenom nastavení sú pripojenia blokované na porte 80. Potrebujeme pridať výnimku pre Nginx na porte 80, na ktorom bude bežať naša webová aplikácia.

sudo ufw allow 'Nginx HTTP'

Skontrolujte, či váš server Nginx beží.

systemctl status nginx

Ak v Activesekcii vidíte active (running), všetko je nastavené. Ak nie, môžete skúsiť reštartovať službu.

systemctl restart nginx

Odstráňte predvolený konfiguračný súbor Nginx.

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

Vytvorte nový a jednoducho ho zavolajte node.

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

Do súboru prilepte nasledujúci text a nahraďte ho example.comdoménou svojej webovej lokality.

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

Všimnite si, že proxy_passoznačuje IP, na ktorej lokálne beží naša aplikácia Keystone, ktorá je localhostna porte 3000. listen 80je port, na ktorý chceme, aby bola aplikácia nasmerovaná, čo je v tomto prípade port 80.

Potom musíme vytvoriť symbolický odkaz alebo symbolický odkaz na priečinok s názvom sites-enabled. Rozdiel medzi sites-enableda sites-availableje v tom, že sites-enabledje skutočne načítaný Nginxom.

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

Teraz bude váš konfiguračný súbor sites-availablepripravený na použitie a bude načítaný z sites-enabled. Ak chcete použiť konfiguráciu, aby sa prejavila, jednoducho reštartujte Nginx.

sudo systemctl restart nginx

Nakoniec reštartujte aplikáciu PM2

pm2 restart [id]

Teraz môžete prejsť na svoju doménu v prehliadači a zobrazí sa Welcome to Keystoneobrazovka s panelom, do ktorého sa môžete prihlásiť.

Ak to vidíte, potom ste úspešne nastavili produkčný webový server Node.js. Ak nie, možno ste urobili krok nesprávne a možno sa budete chcieť vrátiť a pozorne postupovať podľa každého kroku.

Viac o Nginx sa môžete dozvedieť na ich webovej stránke .

Dúfam, že sa vám tento návod páčil a dúfam, že vám pomohol nastaviť si vlastný webový server na produkciu na vašom Vultr VPS.


Ako nainštalovať Thelia 2.3 na Debian 9

Ako nainštalovať Thelia 2.3 na Debian 9

Používate iný systém? Thelia je open source nástroj na vytváranie webových stránok elektronického podnikania a správu online obsahu napísaného v PHP. Zdrojový kód Thelia i

Ako nainštalovať Microweber na CentOS 7

Ako nainštalovať Microweber na CentOS 7

Používate iný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je umiestnený na GitHub. Tento návod vám to ukáže

Inštalácia Microweber na Ubuntu 16.04

Inštalácia Microweber na Ubuntu 16.04

Používate iný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je umiestnený na GitHub. Tento návod vám to ukáže

Ako nainštalovať dotCMS na Ubuntu 16.04

Ako nainštalovať dotCMS na Ubuntu 16.04

Používate iný systém? DotCMS je open source podnikový systém na správu obsahu napísaný v jazyku Java. Obsahuje takmer všetky požadované funkcie t

Ako nainštalovať Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Používate iný systém? Pagekit 1.0 CMS je krásny, modulárny, rozšíriteľný a ľahký, bezplatný a open source systém na správu obsahu (CMS) s

Ako nainštalovať BigTree CMS na Fedora 26 LAMP VPS

Ako nainštalovať BigTree CMS na Fedora 26 LAMP VPS

Používate iný systém? BigTree CMS 4.2 je rýchly a ľahký, bezplatný a open source podnikový redakčný systém (CMS) s rozsiahlym

Inštalácia Pagekit CMS na Ubuntu 16.04 LTS

Inštalácia Pagekit CMS na Ubuntu 16.04 LTS

Používate iný systém? Pagekit je open source CMS napísaný v PHP. Zdrojový kód Pagekitu je umiestnený na GitHub. Táto príručka vám ukáže, ako nainštalovať

Ako nainštalovať PyroCMS na Ubuntu 16.04

Ako nainštalovať PyroCMS na Ubuntu 16.04

Používate iný systém? PyroCMS je open source CMS napísaný v PHP. Zdrojový kód PyroCMS je hosťovaný na GitHub. V tomto návode si dobre prejdite celý

Ako nainštalovať Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Používate iný systém? Subrion 4.1 CMS je výkonný a flexibilný open source systém na správu obsahu (CMS), ktorý prináša intuitívny a prehľadný obsah

Ako nainštalovať Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Ako nainštalovať Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Používate iný systém? Backdrop CMS 1.8.0 je jednoduchý a flexibilný, mobilný, bezplatný a open source systém na správu obsahu (CMS), ktorý nám umožňuje

Ako nainštalovať Roadiz CMS na Debian 9

Ako nainštalovať Roadiz CMS na Debian 9

Používate iný systém? Úvod Roadiz je moderný CMS navrhnutý na prácu s mnohými typmi služieb. Na základe komponentov Symfony a Doctrine ORM, t.j

Inštalácia Microweber na Debian 9

Inštalácia Microweber na Debian 9

Používate iný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je umiestnený na GitHub. Tento návod vám to ukáže

Ako nainštalovať Grav CMS na Fedora 28

Ako nainštalovať Grav CMS na Fedora 28

Používate iný systém? Grav je open source CMS s plochým súborom napísaný v PHP. Zdrojový kód Grav je verejne hosťovaný na GitHub. Táto príručka vám ukáže, ako t

Ako nainštalovať Grav CMS na Debian 9

Ako nainštalovať Grav CMS na Debian 9

Používate iný systém? Grav je open source CMS s plochým súborom napísaný v PHP. Zdrojový kód Grav je verejne hosťovaný na GitHub. Táto príručka vám ukáže, ako t

Ako nainštalovať Automad CMS na CentOS 7

Ako nainštalovať Automad CMS na CentOS 7

Používate iný systém? Automad je open source súborový systém na správu obsahu (CMS) a nástroj šablón napísaný v PHP. Zdrojový kód Automad i

Ako nainštalovať Raneto na Ubuntu 17.10

Ako nainštalovať Raneto na Ubuntu 17.10

Raneto je bezplatná vedomostná základňa s otvoreným zdrojovým kódom postavená na Node.js, ktorá sa ľahko nastavuje a používa a tiež sa jednoducho spravuje. Kategórie a stránky ar

Ako nainštalovať Thelia 2.3 na Ubuntu 16.04

Ako nainštalovať Thelia 2.3 na Ubuntu 16.04

Používate iný systém? Thelia je open source nástroj na vytváranie webových stránok elektronického podnikania a správu online obsahu napísaného v PHP. Zdrojový kód Thelia i

Ako nainštalovať október 1.0 CMS na Debian 9 LAMP VPS

Ako nainštalovať október 1.0 CMS na Debian 9 LAMP VPS

Používate iný systém? Október 1.0 CMS je jednoduchý a spoľahlivý, bezplatný a open source systém na správu obsahu (CMS) postavený na frameworku Laravel

Ako nainštalovať ImpressPages CMS 5.0 na Ubuntu 16.04 LAMP VPS

Ako nainštalovať ImpressPages CMS 5.0 na Ubuntu 16.04 LAMP VPS

Používate iný systém? ImpressPages CMS 5.0 je jednoduchý a efektívny, bezplatný a open source, užívateľsky prívetivý systém na správu obsahu (CMS) založený na MVC.

Ako nainštalovať CMS Made Simple 2.2 na Debian 9 LAMP VPS

Ako nainštalovať CMS Made Simple 2.2 na Debian 9 LAMP VPS

Používate iný systém? CMS Made Simple 2.2 je flexibilný a rozšíriteľný, bezplatný a open source systém na správu obsahu (CMS) inteligentne navrhnutý tak, aby

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac