Hozzon létre egy Hapi.js webalkalmazást a Node.js használatával az Ubuntu 16.04 rendszeren

A Hapi.js egy gazdag, robusztus és hatékony Node.js keretrendszer, amelyet webalkalmazások készítésére terveztek a Node.js ökoszisztémában. Egyszerű kialakítása megkönnyíti az indulást. A Hapi a legfrissebb JavaScript ES6 funkciót használja alapjában, például az ES6 ígéreteit. Azok számára, akik korábban használták az Express-t, a Hapi lehetővé teszi, hogy kipróbáljon valami újat, és megtapasztalhassa a legújabb JavaScript-funkciókat.

Ebben az oktatóanyagban az a célunk, hogy létrehozzunk egy alapvető Hapi.js weboldalt, amelyet a Vultr VPS-ünk tárol az Ubuntu 16.04 LTS-en. Azok számára, akiknek van domainjük webhelyükhöz, fordított proxyt használunk a domain és a webhelyünk összekapcsolásához. Végül megtanuljuk, hogyan kezeljük ezt egy folyamatmenedzserrel. Most, hogy ezt már félretesszük, kezdjük el.

A Node.js telepítése

Telepítenünk kell a Node.js-t. Ubuntu 16.04 LTS esetén kövesse az alábbi utasításokat.

Az adattár hozzáadása

Hozzá kell adnunk a NodeSource APT-tárat, amely a Node.js legújabb LTS-kiadását tartalmazza.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Letöltünk egy szkriptet, amellyel a tárat a forráslistánkhoz adjuk, valamint telepítjük a Node.js fájlt a NodeSource tárolóból.

Építőeszközök telepítése

A Node.js telepítésén túl szükségünk lesz néhány szükséges összeállítási eszköz telepítésére is, amelyek segítséget nyújtanak az esetlegesen telepítendő modulok felépítésében.

sudo apt-get install -y build-essential

Ez egyszerűen letölti és telepíti az összeállítási eszközöket a tárolóból.

Alkalmazáskönyvtár beállítása

Jó gyakorlat, ha kijelölünk egy mappát, amelyet az alkalmazásunkhoz használunk, és amely tartalmazza az alkalmazásunk összes adatát, például konfigurációs fájlokat és indító szkripteket. Hozzon létre egy mappát, és nevezze el tetszés szerint. Az oktatóanyag kedvéért feltételezem, hogy te nevezted el site.

mkdir site

Ha elkészítette a mappát, most már át is alakíthatjuk. Győződjön meg arról, hogy az imént létrehozott könyvtárban van, és indítsa el az NPM-csomag varázslót.

npm init

Megkéri, hogy adjon meg néhány különböző dolgot, például az alkalmazás nevét, a kezdőfájlt, a licencet és így tovább. A legtöbb mezőt alapértelmezettként hagyhatja, kivéve a nyilvánvalóbb mezőket, például az alkalmazás nevét. A végén így fog kinézni:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Hapi.js site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "rich",
  "license": "MIT"
}

Ha elégedett az eredménnyel, kattintson ENTERa fájl mentéséhez.

A Hapi.js telepítése

Most, hogy a könyvtár sikeresen elkészült, folytathatjuk a Hapi.js telepítését. Amint azt korábban említettük, az NPM-et használjuk a Hapi.js letöltéséhez, valamint annak függőségeit projektünkhöz. A projektkönyvtárban futtassa a következőt.

npm install hapi.js

Ez letölti a Hapi.js-t az NPM-ből, és telepíti a projektkönyvtárunkba. Ugyanebben a futásban a Hapi.js által támaszkodó függőségek is letöltődnek a mi kényelmünk érdekében.

Mintaalkalmazásunk beállítása

Most itt az ideje beállítani az alap Hapi.js alkalmazásfájlt. Ez tartalmazza majd az alkalmazáshoz tartozó összes kódunkat. Az úton tovább bővíthetjük az alkalmazáskódunkat, és tetszés szerint további dolgokat is hozzáadhatunk hozzá.

Ezután létrehozzuk a kezdőfájlunkat. A fájl elnevezésének pontos meghatározásához tekintse mainmeg a package.jsonfájl szakaszát . Mivel az alapértelmezett elnevezési sémát használtam, a fájlunk neve lesz index.js.

nano index.js

Miután belépett a nano szövegszerkesztőbe, hozza létre az alapalkalmazás kódját.

const Hapi=require('hapi');
const server=Hapi.server({
    host:'localhost',
    port: 3000
});

server.route({
    method:'GET',
    path:'/',
    handler:((request,h)) => {
        return 'Sample Hapi.js Application';
    }
});
async function start() {

    try {
        await server.start();
    } catch (err) {
        console.log(err);
        process.exit(1);
    }
    console.log(`Our server is running! ${server.info.uri}`);
};

start();

Először importáljuk a Hapi modult. Ezután inicializáljuk a szerver konstruktorunkat, amely tartalmazza azt a gazdagépet, amelyen futtatni kívánjuk a szervert, valamint a portot, amely 3000ehhez az oktatóanyaghoz tartozik. Ezután beállítunk egy alap útválasztót, amely jelzi, hogy valahányszor valaki felkeresi az oldalt, egy egyszerű üzenet fogadja. Mindennek tetejébe van egy aszinkron funkciónk, amellyel elindíthatjuk a szerverünket, amely bejelentkezik arra a konzolra, amelyen a szerverünk fut. Ha végzett, mentse és zárja be a fájlt ( CTRL+ X)

Most, hogy a fő fájlunk be van állítva, készen állunk az alkalmazás elindítására.

node index.js

Ha a " Our server is running!" feliratot látja a konzolon, akkor a kiszolgáló sikeresen elindult.

Telepítse az Nginx-et

Mivel az Nginx elérhető az alapértelmezett Ubuntu-tárolókban, a telepítés egyszerű. Egyszerűen frissítse a csomaglistákat, és telepítse.

sudo apt update
sudo apt install nginx -y 

A csomaglisták frissítése után az Nginx és függőségei telepítésre kerülnek.

Az Nginx beállítása

Ahhoz, hogy az Nginx megfordítsa az alkalmazásunkat, létre kell hoznunk egy konfigurációs fájlt. Ez a konfigurációs fájl információkat tartalmaz az alkalmazásunkról, amelyet az Nginx a fordított proxyhoz fog használni.

Törölje az Nginx által létrehozott alapértelmezett konfigurációt, mivel később a sajátunkra cseréljük.

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

Hozzon létre egy új fájlt a sites-availablemappában. Ami az elnevezést illeti site, az egyszerűség kedvéért maradhatunk az egyszerűnél.

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

Illessze be a következőt a fájlba, és mentse.

server {
    listen 80;
    location / {
          proxy_set_header X-Real-IP 
          $remote_addr;
          proxy_set_header 
          X-Forwarded-For 
          $proxy_add_x_forwarded_for;
          proxy_set_header Host 
          $http_host;
          proxy_set_header 
        X-NginX-Proxy true; proxy_pass 
       http://127.0.0.1:3000/;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade 
     $http_upgrade;
    proxy_set_header Connection 
    "upgrade";
    proxy_redirect off;
    proxy_set_header 
   X-Forwarded-Proto $scheme;
    }
}

Ebben a fájlban azt mondjuk az Nginxnek, hogy figyeljen a porton 80. A proxy áthárítását is beállítjuk a localhostcímre és a portra 3000, amely megegyezik a Hapi alkalmazásunkkal.

Most visszatérhet az alkalmazáskönyvtárba, és elindíthatja a webhelyet. Miután a webhely elindult, egyszerűen navigáljon a http://yourdomain.comvagy elemre http://yourip, és látni fogja a " Hello World" szöveget .

Telepítse a PM2-t

A PM2 megtalálható az NPM repository-ban, és globálisan telepíthető, hogy bárhonnan elérhető legyen, például így.

sudo npm install pm2 -g

A -gvégén lévő zászló azt jelzi, hogy a modult a global modules mappába szeretnénk telepíteni, így a projektkönyvtárunkon kívül is használhatjuk. Ezt arra használjuk, hogy a projektünk úgy viselkedjen, mint egy normál rendszeralkalmazás.

Alkalmazásunk indítása a PM2-vel

A PM2 telepítése után lépjen vissza a projektkönyvtárba. Az alkalmazásunk indításának szintaxisa most kissé eltérő lesz. Így fogjuk csinálni a PM2-vel.

pm2 start index.js --name site

A PM2 start funkciót használjuk, amely alapvetően profilt hoz létre az alkalmazásunkhoz, néven site. A parancs futtatása után a webhely elindul, de észre fogja venni, hogy a naplók nem jelennek meg. Ennek az az oka, hogy a naplók jelenlegi megtekintésének módja más.

pm2 logs site

Az --linesargumentummal még azt is megadhatja, hogy hány naplósort szeretne látni .

Következtetés

Sikeresen beállított egy Hapi.js webszervert, fordított proxyt az Nginx-szel, és megtanulta, hogyan kezelheti jobban a PM2-vel. Ezzel a tudással tovább bővítheti ezt az oktatóanyagot, és nagyon fejlett Hapi.js alkalmazást készíthet. Ha többet szeretne megtudni a Hapi lehetőségeiről, keresse fel hivatalos dokumentációját . Ha többet szeretne megtudni a PM2 lehetőségeiről, tekintse meg gyors útmutatójukat .


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