Ako nastaviť aplikáciu uzla Koa.js na Ubuntu 16.04 LTS

V tomto návode sa naučíme, ako nastaviť webovú aplikáciu Koa.js na produkciu s využitím Node.js. Tiež prepojíme vzorovú doménu s reverzným proxy pomocou Apache a naučíme sa, ako ju spravovať so správnym správcom procesov. Bez ďalších okolkov začnime.

Stručný popis Node.js, Koa.js a Apache

Node.js je rýchly multiplatformový rámec JavaScript založený na motore Chrome V8. Používa sa v desktopových aj serverových aplikáciách a je známy svojou jednovláknovou slučkou udalostí. Node.js obsahuje register balíkov s názvom Node Package Manager (NPM), ktorý obsahuje viac ako pol milióna balíkov. Balíky (alebo moduly) NPM sú základnou chrbticou Node.js, keďže ide o kód riadený komunitou, ktorý môže byť užitočný vo vašej aplikácii Node.js. V našej aplikácii Koa.js je Node.js hlavnou súčasťou jej funkcie.

Koa.js je minimalistický webový rámec postavený na platforme Node.js. Vytvorený tým istým tímom za populárnym rámcom Express.js, jeho cieľom je ďalej minimalizovať už aj tak minimalistický rámec Express.js vylúčením middlewaru z jeho jadra. Hlavnou črtou Koa.js je skutočnosť, že neexistujú žiadne spätné volania. Koa.js je postavený na generátoroch založených na ES6 a funkciách ES6, ako sú Promises.

Apache je populárny webový server s otvoreným zdrojom, ktorý sa používa ako veľmi základný východiskový bod pre webové servery. V tomto návode budeme používať Apache ako reverzný proxy, ktorý nám umožní prepojiť našu aplikáciu so vzorovou doménou. Ak nemáte doménu, tento návod vám bude stále fungovať, len s tým rozdielom, že web pobeží na vašej VPS IP, namiesto domény.

Nastavenie Node.js

Rovnako ako v prípade akéhokoľvek rámca Node.js, budete musieť nainštalovať Node.js na svoje VPS. V záujme tohto tutoriálu budem predpokladať, že už máte vo svojom systéme nainštalovaný súbor Node.js. Ak nie, môžete jednoducho postupovať podľa pokynov tu .

Nastavenie nášho adresára aplikácií

Budeme musieť vytvoriť priečinok, ktorý bude obsahovať základné súbory našej aplikácie.

mkdir site

Neváhajte ho nahradiť siteakýmkoľvek iným názvom, ktorý chcete pre adresár. Ďalej budeme musieť inicializovať náš súbor balíka Node.js. Prejdite do adresára, ktorý ste práve vytvorili, spustite npm inita dokončite výzvy. Nakoniec by to malo vyzerať asi takto:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Koa.js Site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "yourname",
  "license": "ISC"
}

Inštalácia Koa.js

Teraz, keď máme nastavený adresár, môžeme pristúpiť k inštalácii Koa.js. V aktuálnom pracovnom adresári /sitezadajte nasledovné.

npm install koa

Tým sa stiahne modul Koa.js z NPM a nainštaluje sa do nášho adresára projektu pre budúce použitie. Ďalej vytvoríme náš vzorový aplikačný súbor, ktorý bude obsahovať náš kód aplikácie. Ak to chcete urobiť, vytvorte index.jssúbor.

nano index.js

Keď ste v súbore, vytvorte vzorovú aplikáciu.

const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
     ctx.body = 'Hello World';
 });

app.listen(3000);
console.log('Website is live!')

Uložte a zatvorte súbor. CTRL+ X.

Budeme sa chcieť uistiť, že naša aplikácia beží správne. Ak ho chcete spustiť, spustite node index.jsa Website is livev konzole uvidíte .

Inštalácia Apache

Teraz, keď vieme, že naša webová stránka je funkčná, môžeme pristúpiť k inštalácii Apache a jeho závislostí.

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

Aby sme mohli použiť funkciu reverzného proxy, ktorá sa nachádza v Apache, budeme musieť povoliť potrebné moduly.

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html

Niektoré z týchto modulov už môžu byť povolené, no vždy je dobré ich ešte raz skontrolovať.

Teraz musíme upraviť predvolený konfiguračný súbor pre Apache.

sudo nano /etc/apache2/sites-enabled/000-default.conf

Tu budeme musieť pridať blok pre našu aplikáciu.

<VirtualHost *:*>
    ProxyPreserveHost On
    ProxyPass / http://0.0.0.0:3000/
    ProxyPassReverse / http://0.0.0.0:3000

    ServerName localhost
</VirtualHost>

Uložte súbor, CTRL+ X.

Môžete si všimnúť, že 3000ako port pre naše ProxyPassa ProxyPassReverseIP používame port . Keďže ide o rovnaký port, na ktorom spúšťame našu aplikáciu Koa.js, je nevyhnutné, aby sme zadali správny port.

Po vykonaní zmien budeme musieť reštartovať Apache a znova spustiť našu aplikáciu Koa.js.

sudo systemctl restart apache2

To zabezpečí, že náš konfiguračný súbor bude aktívny a pripravený na prácu, keď spustíme našu aplikáciu Koa.js. Po reštartovaní Apache prejdite späť do adresára lokality a spustite aplikáciu Koa.js ako predtým. Vo webovom prehliadači prejdite na http://yourdomain, alebo http://yourip:a uvidíte „Hello World“.

Správa našej aplikácie pomocou systemd

Teraz, keď sme prebrali základy vytvárania vzorovej aplikácie Koa.js, sme si uvedomili, že v produkčnom prostredí je spustenie aplikácie tak, ako sme teraz, nepraktické. Procesný manažér je určite požiadavka. Tu vstupuje do hry systemd. Zjednodušene povedané, systemd pozostáva zo softvéru, ktorý poskytuje stavebné bloky pre systém Linux. Podobne ako „init“ poskytuje systém na správu používateľských procesov po spustení systému. V prípade našej aplikácie nám systemd umožňuje automaticky spustiť našu webovú stránku po reštarte systému v prípade, že dôjde k udalosti, ktorá naruší prevádzkyschopnosť systému. Poskytuje tiež sadu nástrojov, ktoré sa môžu hodiť pri správe našej aplikácie. Najlepšie na tom je, že je zabudovaný v Ubuntu 16.04 LTS, takže nemusíme inštalovať žiadny ďalší softvér.

Vytvorte systémovú službu

Všetko, čo potrebujeme na spustenie našej aplikácie, bude obsiahnuté v súbore s názvom service. Obsahuje podrobnosti o našej aplikácii, ako je jej názov, adresár, prostredie a ďalšie. Ak chcete vytvoriť náš systémový súbor, otvorte textový editor.

sudo nano /lib/systemd/system/site.service

Upravte a uložte súbor takto.

[Unit]
Description=desc here
Documentation=https://example.com
After=network.target

[Service]
Environment=NODE_PORT=3000
Type=simple
User=youruser
ExecStart=/usr/bin/node /home/[youruser]/site/index.js
Restart=on-failure

[Install]
WantedBy=multi-user.target

Nahraďte youruseružívateľským menom vášho servera. Tu je rýchly prehľad dôležitých polí:

  • After - Toto informuje systemd, aby pred spustením našej aplikácie počkal, kým nebude sieťové rozhranie pripravené.
  • Environment- Tu môžeme špecifikovať premenné prostredia pre našu aplikáciu. Náš port Node.js je jedným z nich.
  • Type - Toto informuje systemd, že našu aplikáciu je možné len spustiť, bez rozdelenia používateľských práv a podobne.
  • User- Toto povie systemd, že chceme spustiť aplikáciu pod naším používateľským účtom, čo sa odporúča. Spúšťanie aplikácií ako root môže viesť k mnohým bezpečnostným kompromisom.
  • ExecStart - V podstate príkaz, ktorý systemd spustí na spustenie našej aplikácie, podobne ako sme ju predtým spúšťali manuálne.
  • Restart- Informuje systemd, za akých podmienok reštartovať našu aplikáciu. V tomto prípade chceme v prípade chyby reštartovať našu stránku.

Spustite službu systemd

Teraz sme pripravení spustiť našu službu systemd.

sudo systemctl daemon-reload

Toto je potrebné vždy, keď sa zmení servisný súbor systemd, aby systemd zaregistroval všetky nové vykonané zmeny.

Potom spustite aplikáciu.

sudo systemctl start site

Znova prejdite na stránku vo svojom prehliadači a overte, či všetko funguje.

Kľúčové systémové riadiace funkcie

  • stop - Úplne zastaví aplikáciu.
  • restart - Zastaví aplikáciu a znova ju spustí v rámci nového procesu.
  • enable - Povie systemd, aby spustil aplikáciu vždy, keď spustíte počítač.
  • status - Zobrazuje informácie o aktuálne spustenej aplikácii, ako je uptime, stav aplikácie a ďalšie.

Ak chcete použiť ktorúkoľvek z týchto funkcií, spustite nasledujúce.

systemctl <function> site

Záver

Úspešne sme nastavili aplikáciu Koa.js a naučili sme sa, ako ju reverzovať proxy, ako aj spravovať pomocou systemd. Teraz ste pripravení rozšíriť svoju aplikáciu a stavať na tomto príklade. Ak sa chcete dozvedieť viac o Koa.js a ďalších veciach, s ktorými môžete robiť, navštívte ich webovú stránku , kde nájdete ďalšie užitočné informácie. Okrem toho, ak by ste sa chceli dozvedieť viac o správcovi procesov systemd, prečítajte si dokumentáciu k nemu tu . Nakoniec, ak by ste sa chceli dozvedieť viac o reverznom proxy servera Apache, môžete si ich pozrieť tu .

Zanechať komentár

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.

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.

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.

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