Nastavení serveru Keystone.js pomocí Nginx Reverse Proxy na Ubuntu 16.04

V tomto tutoriálu nastavíme webový server s reverzním proxy. CMS, který budeme používat, je Keystone.js, dobře známý framework webových aplikací založený na Express.js. Reverzní proxy, kterou budeme používat, je Nginx, což je bezplatný a open source reverzní proxy server a také HTTP server. Databáze, kterou budeme používat, je MongoDB, databáze dokumentů NoSQL. To bude vyžadovat, abyste měli nastavenou doménu se záznamy. Pokud tuto sadu nemáte, pokračujte a postarejte se o to a vraťte se k tomuto návodu.

Instalace Node

Nejprve nainstalujeme Node.js, což je interpret Javascript založený na Javascript engine 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

Instalace Nginx

Dále nainstalujeme Nginx, náš reverzní proxy.

sudo apt update
sudo apt install nginx

Tím se aktualizují seznamy balíčků a nainstaluje se Nginx. Po dokončení instalace nastavíme projekt našeho uzlu.

Inicializace našeho projektu Keystone

Vytvořte náš projekt uzlu. Chcete-li to provést, jednoduše vytvořte novou složku.

mkdir website

Poté vytvoříme náš package.jsonsoubor. Chcete-li to provést, jednoduše spusťte npm initsvůj terminál, vyplňte pole a yespotvrďte odpověď „ “. Jakmile vytvoříte package.jsonsoubor, nainstalujeme následující moduly uzlů.

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

Po dokončení stahování spusťte následující.

yo keystone

Vyplňte požadovaná pole. To vás požádat, aby project namese template engine, emailna ovládacím panelu, a tak dále. Pokud nevíte, co vybrat, budou výchozí hodnoty v pořádku. Poté, co nakonfigurujete nastavení keystone, můžeme otestovat, zda náš server běží, zadáním node keystonea spuštěním vaší aplikace. Ve výchozím nastavení bude vaše aplikace spuštěna na localhost, na portu 3000. Všimněte si, že pokud nemáte nainstalovaný MongoDB, databáze pro vás nebude dostupná hned. Jak jej nainstalovat se dozvíte později v tutoriálu.

Zde je základní rozložení adresáře pro Keystone.js:

  • /lib - Zde budete ukládat své vlastní knihovny a další kód.

  • /models- Zde budete ukládat databázové modely vaší aplikace. KeystoneJS používá MongoDB jako poskytovatele databáze.

  • /public - Zde budou uloženy vaše statické soubory (CSS, JS, obrázky atd.).

  • /routes/api - Zde budou uloženy řadiče API vaší aplikace.

  • /routes.views - Zde budou uloženy ovladače zobrazení aplikací.

  • /templates - Zde budou uloženy všechny soubory šablon vaší aplikace.

  • /updates - Zde budou uloženy vaše migrační skripty.

  • package.json - Toto je váš konfigurační soubor npm, který pro nás generátor vygeneroval.

  • keystone.js - Náš hlavní startovací soubor, spustíme jej při spuštění webu.

Inicializace naší databáze

Jak již bylo zmíněno, naše databáze, kterou budeme používat, je MongoDB, což je spolehlivá NoSQL databáze orientovaná na dokumenty. Pokud již máte MongoDB nainstalovaný, můžete tuto část přeskočit. Pokud ne, zde je návod, jak jej nainstalovat na Ubuntu 16.04.

Importujte veřejný klíč použitý pro balíček mongoDB.

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

Vytvořte soubor seznamu použitý k instalaci balíčku.

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 seznamy balíčků pomocí apt.

sudo apt update

Nakonec nainstalujte MongoDB.

sudo apt install mongodb-org -y

Po dokončení této instalace spusťte MongoDB.

sudo service mongod start

Tím se spustí proces MongoDB na portu 27017.

MongoDB se bude používat v celé aplikaci a bude sloužit k ukládání informací, které používáme pro naše modely, například Usermodel. Keystone ji používá jako svou databázi a v tuto chvíli nemůžete používat jiné dodavatele databází.

Instalace PM2

Nyní je čas nainstalovat PM2 (Process Manager 2.) PM2 je správce procesů pro aplikace Node.js ve formě modulu npm. Poskytuje snadný způsob, jak spravovat aplikace a spouštět je na pozadí. Protože je v NPM, vše, co musíme udělat pro jeho instalaci, je spustit následující.

sudo npm install pm2 -g

To říká npm, aby jej nainstaloval globálně, takže jej můžeme použít kdekoli v našem systému.

Spuštění/správa aplikace na PM2

Dříve jsme spouštěli naši webovou aplikaci s node keystone. S PM2 je to trochu jiné. Nyní spustíme naši aplikaci uzlu s následujícím.

pm2 start keystone.js

Tím se naše aplikace PM2 přidá do našeho seznamu procesů a zobrazí se malý rámeček, abyste viděli, že je skutečně online. Všimněte si pole označeného idpro váš proces. Uchovávejte to blízko, protože později na to uvedeme mnoho odkazů.

Chcete-li zobrazit protokoly vaší aplikace.

pm2 logs [id]

Pokud je to například pm2 logs 0vaše první aplikace PM2.

Pro zastavení vaší webové aplikace kdykoli.

pm2 stop [id]

Chcete-li aplikaci zcela odstranit.

pm2 delete [id]

PM2 má dokonce monitorovací panel, pokud chcete vidět některé základní statistiky pro vaši aplikaci, a můžete k nim přistupovat.

pm2 monit

Zobrazí se některé základní informace, jako je využití paměti RAM, využití procesoru a doba provozu.

Skvělá funkce, kterou PM2 nabízí, je watching. V podstatě sledování znamená, že PM2 automaticky detekuje změny kteréhokoli ze souborů ve stejném adresáři jako váš startovací soubor a automaticky restartuje vaši aplikaci. Chcete-li to povolit, jednoduše restartujte aplikaci, ale předejte jí příznak sledování.

pm2 restart [id] --watch

Chcete-li zakázat sledování poté, co bylo povoleno, jednoduše znovu spusťte stejný příkaz a sledování bude zakázáno.

V tomto tutoriálu opustíme sledování.

Nastavení reverzního proxy

Ujistěte se, že máte nainstalovaný Nginx. Pokud z nějakého důvodu není, postupujte podle výše uvedených kroků.

Upravte nastavení brány firewall. Na Ubuntu ufwje oficiální firewall. Ve výchozím nastavení jsou připojení blokována na portu 80. Potřebujeme přidat výjimku pro Nginx na portu 80, na kterém poběží naše webová aplikace.

sudo ufw allow 'Nginx HTTP'

Ověřte, že váš server Nginx běží.

systemctl status nginx

Pokud pod Activesekcí vidíte active (running), pak je vše připraveno. Pokud ne, můžete zkusit službu restartovat.

systemctl restart nginx

Odstraňte výchozí konfigurační soubor Nginx.

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

Vytvořte nový a jednoduše jej zavolejte node.

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

Do souboru vložte následující a nahraďte example.comje doménou svého webu.

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šimněte si, že proxy_passoznačuje IP, na které naše aplikace Keystone běží lokálně, což je localhostna portu 3000. listen 80je port, na který chceme aplikaci přesměrovat, což je v tomto případě port 80.

Poté musíme vytvořit symbolický odkaz nebo symbolický odkaz na složku s názvem sites-enabled. Rozdíl mezi sites-enableda sites-availableje ten, že sites-enabledje ve skutečnosti načten Nginxem.

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

Nyní bude váš konfigurační soubor sites-availablepřipraven k použití a bude načten z sites-enabled. Chcete-li použít konfiguraci, aby se projevila, jednoduše restartujte Nginx.

sudo systemctl restart nginx

Nakonec restartujte aplikaci PM2

pm2 restart [id]

Nyní můžete přejít na svou doménu v prohlížeči a zobrazí se Welcome to Keystoneobrazovka s panelem, do kterého se můžete přihlásit.

Pokud to vidíte, pak jste úspěšně nastavili produkční webový server Node.js. Pokud ne, možná jste udělali krok špatně a možná se budete chtít vrátit a pečlivě dodržet každý krok.

Více o Nginx se můžete dozvědět na jejich webových stránkách .

Doufám, že se vám tento návod líbil a doufám, že vám pomohl nastavit váš vlastní webový server pro produkci na vašem Vultr VPS.


Jak nainstalovat Thelia 2.3 na Debian 9

Jak nainstalovat Thelia 2.3 na Debian 9

Používáte jiný systém? Thelia je open source nástroj pro vytváření webových stránek pro e-business a správu online obsahu napsaného v PHP. Zdrojový kód Thelia i

Jak nainstalovat Microweber na CentOS 7

Jak nainstalovat Microweber na CentOS 7

Používáte jiný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je hostován na GitHubu. Tento průvodce vám to ukáže

Instalace Microweber na Ubuntu 16.04

Instalace Microweber na Ubuntu 16.04

Používáte jiný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je hostován na GitHubu. Tento průvodce vám to ukáže

Jak nainstalovat dotCMS na Ubuntu 16.04

Jak nainstalovat dotCMS na Ubuntu 16.04

Používáte jiný systém? DotCMS je open-source podnikový systém pro správu obsahu napsaný v Javě. Obsahuje téměř všechny požadované funkce t

Jak nainstalovat Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Jak nainstalovat Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Používáte jiný systém? Pagekit 1.0 CMS je krásný, modulární, rozšiřitelný a lehký, bezplatný a open source systém správy obsahu (CMS) s

Jak nainstalovat BigTree CMS na Fedora 26 LAMP VPS

Jak nainstalovat BigTree CMS na Fedora 26 LAMP VPS

Používáte jiný systém? BigTree CMS 4.2 je rychlý a lehký, bezplatný a open source podnikový systém pro správu obsahu (CMS) s rozsáhlým

Instalace Pagekit CMS na Ubuntu 16.04 LTS

Instalace Pagekit CMS na Ubuntu 16.04 LTS

Používáte jiný systém? Pagekit je open source CMS napsaný v PHP. Zdrojový kód Pagekitu je hostován na GitHubu. Tato příručka vám ukáže, jak nainstalovat

Jak nainstalovat PyroCMS na Ubuntu 16.04

Jak nainstalovat PyroCMS na Ubuntu 16.04

Používáte jiný systém? PyroCMS je open source CMS napsaný v PHP. Zdrojový kód PyroCMS je hostován na GitHubu. V tomto průvodci si dobře projděte celý

Jak nainstalovat Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Jak nainstalovat Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Používáte jiný systém? Subrion 4.1 CMS je výkonný a flexibilní open source systém správy obsahu (CMS), který přináší intuitivní a jasný obsah

Jak nainstalovat Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Jak nainstalovat Backdrop CMS 1.8.0 na Debian 9 LAMP VPS

Používáte jiný systém? Backdrop CMS 1.8.0 je jednoduchý a flexibilní, mobilní, bezplatný a open source systém správy obsahu (CMS), který nám umožňuje

Jak nainstalovat Roadiz CMS na Debian 9

Jak nainstalovat Roadiz CMS na Debian 9

Používáte jiný systém? Úvod Roadiz je moderní CMS navržený pro práci s mnoha typy služeb. Na základě komponent Symfony a Doctrine ORM, tj

Instalace Microweber na Debian 9

Instalace Microweber na Debian 9

Používáte jiný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je hostován na GitHubu. Tento průvodce vám to ukáže

Jak nainstalovat Grav CMS na Fedoru 28

Jak nainstalovat Grav CMS na Fedoru 28

Používáte jiný systém? Grav je open source plochý CMS napsaný v PHP. Zdrojový kód Grav je veřejně hostován na GitHubu. Tato příručka vám ukáže, jak t

Jak nainstalovat Grav CMS na Debian 9

Jak nainstalovat Grav CMS na Debian 9

Používáte jiný systém? Grav je open source plochý CMS napsaný v PHP. Zdrojový kód Grav je veřejně hostován na GitHubu. Tato příručka vám ukáže, jak t

Jak nainstalovat Automad CMS na CentOS 7

Jak nainstalovat Automad CMS na CentOS 7

Používáte jiný systém? Automad je open source souborový redakční systém (CMS) a šablonový engine napsaný v PHP. Zdrojový kód Automad i

Jak nainstalovat Raneto na Ubuntu 17.10

Jak nainstalovat Raneto na Ubuntu 17.10

Raneto je bezplatná znalostní báze s otevřeným zdrojovým kódem postavená na Node.js, která se snadno nastavuje a používá a také se snadno spravuje. Kategorie a stránky ar

Jak nainstalovat Thelia 2.3 na Ubuntu 16.04

Jak nainstalovat Thelia 2.3 na Ubuntu 16.04

Používáte jiný systém? Thelia je open source nástroj pro vytváření webových stránek pro e-business a správu online obsahu napsaného v PHP. Zdrojový kód Thelia i

Jak nainstalovat Říjen 1.0 CMS na Debian 9 LAMP VPS

Jak nainstalovat Říjen 1.0 CMS na Debian 9 LAMP VPS

Používáte jiný systém? Říjen 1.0 CMS je jednoduchý a spolehlivý, bezplatný a open source systém správy obsahu (CMS) postavený na frameworku Laravel.

Jak nainstalovat ImpressPages CMS 5.0 na Ubuntu 16.04 LAMP VPS

Jak nainstalovat ImpressPages CMS 5.0 na Ubuntu 16.04 LAMP VPS

Používáte jiný systém? ImpressPages CMS 5.0 je jednoduchý a efektivní, bezplatný a open source, uživatelsky přívětivý systém pro správu obsahu (CMS) založený na MVC.

Jak nainstalovat CMS Made Simple 2.2 na Debian 9 LAMP VPS

Jak nainstalovat CMS Made Simple 2.2 na Debian 9 LAMP VPS

Používáte jiný systém? CMS Made Simple 2.2 je flexibilní a rozšiřitelný, bezplatný a open source systém správy obsahu (CMS) inteligentně navržený tak, aby

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více