Koa.js csomópont-alkalmazás beállítása Ubuntu 16.04 LTS-en

Ebben az oktatóanyagban megtanuljuk, hogyan állíthatunk be egy Koa.js webalkalmazást éles használatra a Node.js használatával. Egy mintatartományt is összekapcsolunk egy fordított proxyval, Apache használatával, és megtanuljuk, hogyan kell kezelni azt megfelelő folyamatkezelővel. Minden további nélkül kezdjük.

A Node.js, a Koa.js és az Apache rövid leírása

A Node.js egy gyors, többplatformos JavaScript-keretrendszer, amely a Chrome V8-as motorján alapul. Asztali és szerveralkalmazásokban egyaránt használják, és híres egyszálú eseményhurok kezeléséről. A Node.js tartalmazza a Node Package Manager (NPM) nevű csomagnyilvántartást, amely több mint félmillió csomagot tartalmaz. Az NPM-csomagok (vagy modulok) a Node.js gerincét képezik, mivel ezek közösség által vezérelt kódok, amelyek hasznosak lehetnek a Node.js alkalmazásban. Koa.js alkalmazásunkban a Node.js a funkciójának központi része.

A Koa.js egy minimalista webes keretrendszer, amely a Node.js platformra épül. Ugyanaz a csapat készítette a népszerű Express.js keretrendszer mögött, és célja az amúgy is minimalista Express.js keretrendszer további minimalizálása a köztes szoftverek magjából való kizárásával. A Koa.js egyik fő jellemzője, hogy nincs visszahívás. A Koa.js ES6-alapú generátorokra és ES6-funkciókra épül, mint például a Promises.

Az Apache egy népszerű nyílt forráskódú webszerver, amelyet a webszerverek alapvető kiindulópontjaként használnak. Ebben az oktatóanyagban az Apache-t fogjuk használni fordított proxyként, amely lehetővé teszi, hogy alkalmazásunkat egy mintatartományhoz kapcsoljuk. Ha nem rendelkezik domainnel, ez az oktatóanyag továbbra is használható lesz, azzal az egyetlen különbséggel, hogy a webhely domain helyett az Ön VPS IP-címén fog futni.

A Node.js beállítása

Mint minden Node.js keretrendszer esetében, telepítenie kell a Node.js-t a VPS-re. Az oktatóanyag kedvéért feltételezem, hogy a Node.js már telepítve van a rendszerén. Ha nem, egyszerűen kövesse az itt található utasításokat .

Alkalmazási könyvtárunk beállítása

Létre kell hoznunk egy mappát, amely az alkalmazásunk alapvető fájljait tartalmazza.

mkdir site

Nyugodtan cserélje sitele bármilyen más névre, amelyet a könyvtárnak szeretne. Ezután inicializálnunk kell a Node.js csomagfájlt. Váltson át az imént létrehozott könyvtárra, futtassa a npm init, majd hajtsa végre az utasításokat. A végén valahogy így kell kinéznie:

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

A Koa.js telepítése

Most, hogy beállítottuk a könyvtárunkat, folytathatjuk a Koa.js telepítését. Az aktuális munkakönyvtárba /siteírja be a következőt.

npm install koa

Ezzel letölti a Koa.js modult az NPM-ről, és későbbi felhasználás céljából telepíti a projektkönyvtárunkba. Ezután létrehozzuk a minta alkalmazásfájlunkat, amely tartalmazza az alkalmazás kódját. Ehhez hozzon létre egy index.jsfájlt.

nano index.js

Miután belépett a fájlba, hozzon létre egy minta alkalmazást.

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

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

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

Mentse és zárja be a fájlt. CTRL+ X.

Győződjön meg arról, hogy az alkalmazásunk megfelelően fut. Az elindításához futtassa a node index.js, és látni fogja Website is livea konzolon.

Apache telepítése

Most, hogy tudjuk, hogy webhelyünk működik, folytathatjuk az Apache és függőségei telepítését.

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

Az Apache-ban található fordított proxy funkció használatához engedélyeznünk kell a szükséges modulokat.

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

Lehetséges, hogy ezek közül a modulok közül néhány már engedélyezve van, de mindig célszerű még egyszer ellenőrizni őket.

Most szerkesztenünk kell az Apache alapértelmezett konfigurációs fájlját.

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

Itt hozzá kell adnunk egy blokkot az alkalmazásunkhoz.

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

    ServerName localhost
</VirtualHost>

Mentse el a fájlt, CTRL+ X.

Észreveheti, hogy 3000a portot használjuk a saját ProxyPassés az ProxyPassReverseIP portként . Mivel ez ugyanaz a port, amelyen a Koa.js alkalmazást futtatjuk, feltétlenül a megfelelő portot kell megadnunk.

Ha a változtatások érvénybe lépnek, újra kell indítanunk az Apache-t, és újra kell indítanunk a Koa.js alkalmazásunkat.

sudo systemctl restart apache2

Ez biztosítja, hogy konfigurációs fájlunk aktív és készen álljon a működésre, amikor elindítjuk a Koa.js alkalmazásunkat. Az Apache újraindítása után lépjen vissza a webhely könyvtárába, és indítsa el a Koa.js alkalmazást, ahogy korábban tettük. Böngészőjében navigáljon a http://yourdomain, vagy a címre http://yourip:, és megjelenik a „Hello World” felirat.

Alkalmazásunk kezelése systemd-vel

Most, hogy áttekintettük a Koa.js mintaalkalmazás létrehozásának alapjait, rájöttünk, hogy éles környezetben nem praktikus az alkalmazás indítása úgy, ahogy most vagyunk. A folyamatmenedzser mindenképpen követelmény. Itt jön képbe a systemd. Egyszerűen fogalmazva, a systemd olyan szoftverekből áll, amelyek építőelemeket biztosítanak egy Linux rendszer számára. Az „init”-hez hasonlóan rendszert biztosít a felhasználói folyamatok kezelésére a rendszerindítás után. Alkalmazásunk esetében a systemd lehetővé teszi, hogy a rendszer újraindítása után automatikusan elindítsuk weboldalunkat, ha olyan esemény történik, amely megszakítja a rendszer üzemidejét. Ezenkívül egy sor olyan eszközt is biztosít, amelyek hasznosak lehetnek alkalmazásunk kezelése során. A legjobb az egészben az, hogy az Ubuntu 16.04 LTS-be van beépítve, így nincs szükség további szoftverek telepítésére.

Rendszerszolgáltatás létrehozása

Minden, amire szükségünk van az alkalmazásunk elindításához, egy nevű fájlban található service. Részleteket tartalmaz az alkalmazásunkról, mint például a neve, a könyvtár, a környezet és egyebek. A rendszerfájl létrehozásához nyisson meg egy szövegszerkesztőt.

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

Szerkessze és mentse el a fájlt így.

[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

Cserélje youruserki a kiszolgáló felhasználónevét. Íme egy gyors összefoglaló a fontos mezőkről:

  • After - Ez arra figyelmezteti a rendszert, hogy az alkalmazás elindítása előtt várja meg, amíg a hálózati interfész elkészül.
  • Environment- Itt adhatunk meg környezeti változókat az alkalmazásunkhoz. A Node.js portunk az egyik ilyen.
  • Type - Ez tájékoztatja a rendszert arról, hogy az alkalmazásunk egyszerűen elindítható anélkül, hogy elágaznának a felhasználói jogosultságok és hasonlók.
  • User- Ez jelzi a systemd-nek, hogy a felhasználói fiókunk alatt szeretnénk futtatni az alkalmazást, ami ajánlott. Az alkalmazások root felhasználóként való futtatása számos biztonsági kompromisszumhoz vezethet.
  • ExecStart - Lényegében az a parancs, amelyet a systemd fog futtatni az alkalmazás elindításához, hasonlóan ahhoz, ahogy korábban kézzel indítottuk.
  • Restart- Megmondja a rendszernek, hogy milyen feltételek mellett indítsa újra az alkalmazást. Ebben az esetben hiba esetén a weboldalunkat szeretnénk újraindítani.

Indítsa el a systemd szolgáltatást

Most már készen állunk rendszerszolgáltatásunk elindítására.

sudo systemctl daemon-reload

Erre akkor van szükség, amikor egy systemd szolgáltatásfájl megváltozik, hogy a systemd regisztrálja az új módosításokat.

Ezután indítsa el az alkalmazást.

sudo systemctl start site

Keresse fel újra a webhelyet a böngészőben, és ellenőrizze, hogy minden működik-e.

Főbb rendszerkezelési funkciók

  • stop - Teljesen leállítja az alkalmazást.
  • restart - Leállítja az alkalmazást, és újra elindítja egy új folyamat alatt.
  • enable - Azt mondja a rendszernek, hogy indítsa el az alkalmazást, amikor elindítja a számítógépet.
  • status - Információkat jelenít meg az éppen futó alkalmazásról, például az üzemidőt, az alkalmazás állapotát és egyebeket.

E funkciók bármelyikének használatához futtassa a következőt.

systemctl <function> site

Következtetés

Sikeresen beállítottunk egy Koa.js alkalmazást, és megtanultuk, hogyan kell visszafordítani a proxyt, valamint kezelni a systemd segítségével. Most már készen áll az alkalmazás kiterjesztésére és erre a példára építve. Ha többet szeretne megtudni a Koa.js-ről, és további hasznos tudnivalókról , látogassa meg webhelyüket , ahol további hasznos információkat talál. Ezen kívül, ha többet szeretne megtudni a systemd folyamatkezelőjéről, olvassa el a dokumentációt itt . Végül, ha többet szeretne megtudni az Apache fordított proxyjáról, nézze meg őket itt .


Telepítse a Plesket a CentOS 7 rendszeren

Telepítse a Plesket a CentOS 7 rendszeren

Más rendszert használ? A Plesk egy szabadalmaztatott webtárhely-vezérlőpult, amely lehetővé teszi a felhasználók számára, hogy adminisztrálják személyes és/vagy ügyfeleik webhelyeit, adatbázisait

A Cacti beállítása a Debian Jessie-n

A Cacti beállítása a Debian Jessie-n

Bevezetés A Cacti egy nyílt forráskódú megfigyelő és grafikus eszköz, amely teljes mértékben az RRD adatokon alapul. A Cactuson keresztül szinte bármilyen típusú eszközt felügyelhet

Telepítse a Lets Encrypt SSL-t az egykattintásos WordPress alkalmazásban

Telepítse a Lets Encrypt SSL-t az egykattintásos WordPress alkalmazásban

Bevezetés A Lets Encrypt egy hitelesítésszolgáltató szolgáltatás, amely ingyenes TLS/SSL-tanúsítványokat kínál. A telepítés folyamatát a Certbot leegyszerűsíti,

Tekkit Classic kiszolgáló beállítása Ubuntu 16.10 rendszeren

Tekkit Classic kiszolgáló beállítása Ubuntu 16.10 rendszeren

Más rendszert használ? Mi az a Tekkit Classic? A Tekkit Classic egy modpack ahhoz a játékhoz, amelyet mindenki ismer és szeret; Minecraft. Tartalmaz néhányat a ver

Az iRedMail beállítása a Debian Wheezy rendszeren

Az iRedMail beállítása a Debian Wheezy rendszeren

Más rendszert használ? Ez az oktatóanyag megmutatja, hogyan telepítheti a csoportmunka iRedMail programot a Debian Wheezy friss telepítésére. Használnia kell egy szervát

Jekyll blog létrehozása Ubuntu 16.04-en

Jekyll blog létrehozása Ubuntu 16.04-en

Más rendszert használ? A Jekyll nagyszerű alternatíva a WordPress helyett blogíráshoz vagy tartalommegosztáshoz. Nem igényel adatbázist, és nagyon egyszerű i

Felügyelet nélküli frissítések beállítása Debian 9-en (Stretch)

Felügyelet nélküli frissítések beállítása Debian 9-en (Stretch)

Más rendszert használ? Ha Debian szervert vásárol, akkor mindig rendelkeznie kell a legújabb biztonsági javításokkal és frissítésekkel, akár alszik, akár nem

A PHP 7.0 vagy PHP 7.1 telepítése és konfigurálása Ubuntu 16.04 rendszeren

A PHP 7.0 vagy PHP 7.1 telepítése és konfigurálása Ubuntu 16.04 rendszeren

A PHP és a kapcsolódó csomagok a leggyakrabban használt összetevők a webszerverek telepítésekor. Ebben a cikkben megtudjuk, hogyan kell beállítani a PHP 7.0 vagy PHP 7.1 o verzióját

A Squid Proxy telepítése a CentOS rendszeren

A Squid Proxy telepítése a CentOS rendszeren

A Squid egy népszerű, ingyenes Linux-program, amely lehetővé teszi továbbítási webproxy létrehozását. Ebben az útmutatóban megtudhatja, hogyan telepítheti a Squid-et a CentOS rendszerre, hogy megfordítsa

A Lighttpd (LLMP Stack) telepítése a CentOS 6 rendszeren

A Lighttpd (LLMP Stack) telepítése a CentOS 6 rendszeren

Bevezetés A Lighttpd az Apache forkja, amely sokkal kevésbé erőforrás-igényes. Könnyű, innen kapta a nevét, és meglehetősen egyszerű a használata. Telepítés

Három ingyenes szervervezérlő panel (gyors telepítés)

Három ingyenes szervervezérlő panel (gyors telepítés)

1. Virtualmin/Webmin A Virtualmin egy hatékony és rugalmas web hosting vezérlőpanel Linux és UNIX rendszerek számára, amely a jól ismert nyílt forráskódú webbázison alapul.

Yii alkalmazás beállítása Ubuntu 14.04-en

Yii alkalmazás beállítása Ubuntu 14.04-en

A Yii egy PHP-keretrendszer, amely lehetővé teszi alkalmazások gyorsabb és egyszerűbb fejlesztését. A Yii telepítése Ubuntura egyszerű, amint azt pontosan megtudhatja

A képernyő használata Ubuntu 14.04-en

A képernyő használata Ubuntu 14.04-en

A Screen egy olyan alkalmazás, amely lehetővé teszi a terminálmunkamenetek többszöri használatát egy ablakon belül. Ez lehetővé teszi több terminálablak szimulálását, ahol ez ma

Állítsa be a saját DNS-kiszolgálóját a Debian/Ubuntu rendszeren

Állítsa be a saját DNS-kiszolgálóját a Debian/Ubuntu rendszeren

Ez az oktatóanyag elmagyarázza, hogyan állíthat be DNS-kiszolgálót a Bind9 használatával Debian vagy Ubuntu rendszeren. A cikkben ennek megfelelően helyettesítse be a saját-domain-neve.com címet. TH-nál

A Logrotate használata naplófájlok kezelésére

A Logrotate használata naplófájlok kezelésére

Bevezetés A Logrotate egy Linux segédprogram, amely leegyszerűsíti a naplófájlok kezelését. Általában naponta egyszer fut egy cron-feladaton keresztül, és kezeli a naplóbázist

A statikus hálózat és az IPv6 konfigurálása CentOS 7 rendszeren

A statikus hálózat és az IPv6 konfigurálása CentOS 7 rendszeren

A VULTR a közelmúltban változtatásokat hajtott végre a saját oldalukon, és most már mindennek jól kell működnie, ha a NetworkManager engedélyezve van. Ha szeretné letiltani

Az Icinga2 módosítása a mester/kliens modell használatához CentOS 6 vagy CentOS 7 rendszeren

Az Icinga2 módosítása a mester/kliens modell használatához CentOS 6 vagy CentOS 7 rendszeren

Az Icinga2 egy hatékony felügyeleti rendszer, és mester-kliens modellben használva helyettesítheti az NRPE-alapú felügyeleti ellenőrzések szükségességét. A mester-kliens

A Red5 Media Server beállítása az Ubuntu 16.04 rendszeren

A Red5 Media Server beállítása az Ubuntu 16.04 rendszeren

Más rendszert használ? A Red5 egy Java nyelven megvalósított nyílt forráskódú médiaszerver, amely lehetővé teszi többfelhasználós Flash-alkalmazások, például élő streamin futtatását.

Fordítsa le és telepítse az Nginx-et a PageSpeed ​​Modul segítségével a Debian 8 rendszeren

Fordítsa le és telepítse az Nginx-et a PageSpeed ​​Modul segítségével a Debian 8 rendszeren

Ebben a cikkben látni fogjuk, hogyan fordíthatja le és telepítheti az Nginx fővonalat az Nginx hivatalos forrásaiból a PageSpeed ​​modullal, amely lehetővé teszi a

Az Apache Cassandra 3.11.x telepítése Ubuntu 16.04 LTS rendszeren

Az Apache Cassandra 3.11.x telepítése Ubuntu 16.04 LTS rendszeren

Más rendszert használ? Az Apache Cassandra egy ingyenes és nyílt forráskódú NoSQL adatbázis-kezelő rendszer, amelyet úgy terveztek, hogy biztosítsa a méretezhetőséget,

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket