Keystone.js kiszolgáló beállítása Nginx Reverse Proxy használatával az Ubuntu 16.04-en

Ebben az oktatóanyagban egy webszervert állítunk be fordított proxyval. Az általunk használt CMS a Keystone.js, egy jól ismert, Express.js-en alapuló webalkalmazás-keretrendszer. Az általunk használt fordított proxy az Nginx, amely egy ingyenes és nyílt forráskódú fordított proxy, valamint egy HTTP-kiszolgáló. Az általunk használt adatbázis a MongoDB, egy NoSQL dokumentumadatbázis. Ehhez be kell állítani egy domaint rekordokkal. Ha nem rendelkezik ezzel a készlettel, gondoskodjon róla, és térjen vissza ehhez az oktatóanyaghoz.

Node telepítése

Először telepítjük a Node.js-t, amely a Chrome V8 Javascript motoron alapuló Javascript-értelmezés.

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

Az Nginx telepítése

Ezután telepítjük az Nginx-et, a fordított proxyt.

sudo apt update
sudo apt install nginx

Ez frissíti a csomaglistákat, és telepíti az Nginx-et. A telepítés után beállítjuk a csomóponti projektünket.

Keystone projektünk inicializálása

Hozd létre a csomópont-projektünket. Ehhez egyszerűen hozzon létre egy új mappát.

mkdir website

Ezután létrehozzuk a package.jsonfájlunkat. Ehhez egyszerűen futtassa npm inita terminálját, töltse ki a mezőket, és yesa megerősítéshez válaszoljon " ". A package.jsonfájl létrehozása után telepítjük a következő csomópont modulokat.

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

Miután befejezte a letöltést, futtassa a következőt.

yo keystone

Töltse ki a kötelező mezőket. Kérni fogja a project name, a template engine, emaila vezérlőpulthoz stb. Ha nem tudja, mit válasszon, akkor az alapértelmezett beállítások rendben lesznek. Miután konfigurálta a trapéztorzítás beállítását, node keystoneaz alkalmazás elindításához gépelve tesztelhetjük, hogy fut-e a szerverünk . Alapértelmezés szerint az alkalmazás a következőn fog futni: localhost, porton 3000. Vegye figyelembe, hogy ha nincs telepítve a MongoDB, akkor az adatbázis nem lesz azonnal elérhető az Ön számára. Az oktatóanyagból később megtudhatja, hogyan telepítheti.

Íme a Keystone.js alapvető könyvtárelrendezése:

  • /lib - Itt tárolhatja egyéni könyvtárait és egyéb kódjait.

  • /models- Itt tárolhatja az alkalmazás adatbázis-modelljeit. A KeystoneJS a MongoDB-t használja adatbázis-szolgáltatóként.

  • /public - Ez az a hely, ahol a statikus fájlok (CSS, JS, képek és így tovább) tárolódnak.

  • /routes/api - Itt lesznek tárolva az alkalmazás API-vezérlői.

  • /routes.views - Az alkalmazásnézet-vezérlők itt lesznek tárolva.

  • /templates - Ez az a hely, ahol az alkalmazás összes sablonfájlja tárolódik.

  • /updates - Ez az a hely, ahol a migrációs szkriptek tárolódnak.

  • package.json - Ez az Ön npm konfigurációs fájlja, amelyet a generátor generált nekünk.

  • keystone.js - A fő indítófájlunk, ezt a weboldal indításakor futtatjuk.

Adatbázisunk inicializálása

Mint korábban említettük, az általunk használt adatbázisunk a MongoDB, amely egy megbízható NoSQL, dokumentum-orientált adatbázis. Ha történetesen már telepítette a MongoDB-t, kihagyhatja ezt a részt. Ha nem, akkor a következőképpen telepítheti az Ubuntu 16.04-re.

Importálja a mongoDB csomaghoz használt nyilvános kulcsot.

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

Hozza létre a csomag telepítéséhez használt listafájlt.

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

Frissítse csomaglistáit a segítségével apt.

sudo apt update

Végül telepítse a MongoDB-t.

sudo apt install mongodb-org -y

Amikor a telepítés befejeződött, indítsa el a MongoDB-t.

sudo service mongod start

Ez elindítja a MongoDB folyamatot a porton 27017.

A MongoDB-t az egész alkalmazásban fogják használni, és a modelljeinkhez használt információk, például egy Usermodell tárolására használják . A Keystone a választott adatbázisaként használja, és jelenleg nem használhat más adatbázis-szállítókat.

A PM2 telepítése

Most itt az ideje telepíteni a PM2-t (Process Manager 2.) A PM2 egy folyamatkezelő Node.js alkalmazásokhoz, npm modul formájában. Egyszerű módot biztosít az alkalmazások kezelésére és a háttérben való futtatására. Mivel NPM-ben van, csak a következőt kell tennünk a telepítéséhez.

sudo npm install pm2 -g

Ez azt mondja az npm-nek, hogy globálisan telepítse, így a rendszerünkben bárhol használhatjuk.

Alkalmazás futtatása/kezelése a PM2-n

Korábban webalkalmazásunkat a következővel futtattuk node keystone. A PM2-vel kicsit más a helyzet. Most futtatjuk a csomópont-alkalmazásunkat a következőkkel.

pm2 start keystone.js

Ezzel hozzáadjuk a PM2 alkalmazásunkat a folyamatlistánkhoz, és megjelenik egy kis doboz, amelyből láthatja, hogy valóban online van. Figyelje idmeg a folyamathoz tartozó dobozt . Tartsa ezt közel, mert a későbbiekben sok utalást fogunk tenni erre.

Az alkalmazás naplóinak megtekintéséhez.

pm2 logs [id]

Például, pm2 logs 0ha ez az első PM2 alkalmazása.

A webalkalmazás bármikori leállításához.

pm2 stop [id]

Az alkalmazás teljes törléséhez.

pm2 delete [id]

A PM2-nek még egy felügyeleti műszerfala is van, ha szeretné látni az alkalmazásának alapvető statisztikáit, és ezzel elérheti.

pm2 monit

Ez megmutat néhány alapvető információt, például a RAM-használatot, a CPU-használatot és az üzemidőt.

A PM2 nagyszerű funkciója a watching. Lényegében a figyelés az, amikor a PM2 automatikusan észleli a változásokat a kezdőfájllal ugyanabban a könyvtárban lévő fájlokban, és automatikusan újraindítja az alkalmazást. Az engedélyezéséhez egyszerűen indítsa újra az alkalmazást, de adjon át neki egy figyelőjelzőt.

pm2 restart [id] --watch

A figyelés letiltásához az engedélyezés után egyszerűen futtassa újra ugyanazt a parancsot, és a figyelés le lesz tiltva.

Ebben az oktatóanyagban abbahagyjuk a figyelést.

A fordított proxy beállítása

Győződjön meg arról, hogy az Nginx telepítve van. Ha valamilyen okból nem, tekintse meg a fenti lépéseket.

Módosítsa a tűzfal beállításait. Az Ubuntu ufwa hivatalos tűzfal. Alapértelmezés szerint a kapcsolatok a porton blokkolva vannak 80. Kivételt kell hozzáadnunk az Nginx on porthoz 80, amelyen webalkalmazásunk futni fog.

sudo ufw allow 'Nginx HTTP'

Ellenőrizze, hogy az Nginx szerver fut-e.

systemctl status nginx

A Activeszakasz alatt, ha a ikont látod active (running), akkor minden készen áll. Ha nem, akkor megpróbálhatja újraindítani a szolgáltatást.

systemctl restart nginx

Törölje az alapértelmezett Nginx konfigurációs fájlt.

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

Hozzon létre egy újat, és egyszerűen hívja fel node.

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

Illessze be a következőt a fájlba, és cserélje example.comki a webhely domainjére.

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

Vegye figyelembe, hogy a proxy_passKeystone alkalmazásunk helyi IP-címét jelöli, amely localhosta porton van 3000. listen 80az a port, amelyre az alkalmazást irányítani szeretnénk, ami jelen esetben a port 80.

Ezután létre kell hoznunk egy szimbolikus hivatkozást a mappához sites-enabled. A sites-enabledés sites-availablea közötti különbség az , hogy sites-enabledvalójában az Nginx tölti be.

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

Most a konfigurációs fájlja sites-availablekészen áll a használatra, és innen töltődik be sites-enabled. A konfiguráció alkalmazásához, hogy az életbe lépjen, egyszerűen indítsa újra az Nginxet.

sudo systemctl restart nginx

Végül indítsa újra a PM2 alkalmazást

pm2 restart [id]

Most egy böngészőben navigálhat a domainjére, és megjelenik egy Welcome to Keystoneképernyő, amelyen egy panel található a bejelentkezéshez.

Ha látja, akkor sikeresen beállította a Node.js éles webkiszolgálót. Ha nem, akkor lehet, hogy egy lépést rosszul hajtott végre, és érdemes visszamenni, és gondosan követni az egyes lépéseket.

Ha többet szeretne megtudni az Nginxről, látogassa meg webhelyüket .

Remélem, hogy tetszett ez az oktatóanyag, és remélem, hogy ez segített beállítani saját webszerverét a Vultr VPS-en való termeléshez.


Leave a Comment

A Thelia 2.3 telepítése Debian 9 rendszeren

A Thelia 2.3 telepítése Debian 9 rendszeren

Más rendszert használ? A Thelia egy nyílt forráskódú eszköz e-üzleti webhelyek létrehozására és PHP-ben írt online tartalmak kezelésére. Thelia forráskód i

A Microweber telepítése CentOS 7 rendszeren

A Microweber telepítése CentOS 7 rendszeren

Más rendszert használ? A Microweber egy nyílt forráskódú drag and drop CMS és online bolt. A Microweber forráskódja a GitHubon található. Ez az útmutató megmutatja neked

A Microweber telepítése Ubuntu 16.04-re

A Microweber telepítése Ubuntu 16.04-re

Más rendszert használ? A Microweber egy nyílt forráskódú drag and drop CMS és online bolt. A Microweber forráskódja a GitHubon található. Ez az útmutató megmutatja neked

A dotCMS telepítése Ubuntu 16.04-re

A dotCMS telepítése Ubuntu 16.04-re

Más rendszert használ? A DotCMS egy nyílt forráskódú, vállalati szintű, Java nyelven írt tartalomkezelő rendszer. Szinte minden szükséges funkciót tartalmaz t

A Pagekit 1.0 CMS telepítése FreeBSD 11 FAMP VPS-re

A Pagekit 1.0 CMS telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Pagekit 1.0 CMS egy gyönyörű, moduláris, bővíthető és könnyű, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS)

A BigTree CMS telepítése Fedora 26 LAMP VPS-re

A BigTree CMS telepítése Fedora 26 LAMP VPS-re

Más rendszert használ? A BigTree CMS 4.2 egy gyors és könnyű, ingyenes és nyílt forráskódú, vállalati szintű tartalomkezelő rendszer (CMS), amely kiterjedt

A Pagekit CMS telepítése Ubuntu 16.04 LTS-re

A Pagekit CMS telepítése Ubuntu 16.04 LTS-re

Más rendszert használ? A Pagekit egy PHP nyelven írt nyílt forráskódú CMS. A Pagekit forráskódja a GitHubon található. Ez az útmutató megmutatja, hogyan kell telepíteni

A PyroCMS telepítése az Ubuntu 16.04 rendszeren

A PyroCMS telepítése az Ubuntu 16.04 rendszeren

Más rendszert használ? A PyroCMS egy PHP nyelven írt nyílt forráskódú CMS. A PyroCMS forráskódja a GitHubon található. Ebben az útmutatóban jól járja végig az egészet

A Subrion 4.1 CMS telepítése FreeBSD 11 FAMP VPS-re

A Subrion 4.1 CMS telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Subrion 4.1 CMS egy hatékony és rugalmas nyílt forráskódú tartalomkezelő rendszer (CMS), amely intuitív és világos tartalmat biztosít.

A Backdrop CMS 1.8.0 telepítése Debian 9 LAMP VPS-re

A Backdrop CMS 1.8.0 telepítése Debian 9 LAMP VPS-re

Más rendszert használ? A Backdrop CMS 1.8.0 egy egyszerű és rugalmas, mobilbarát, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS), amely lehetővé teszi

A Roadiz CMS telepítése Debian 9 rendszeren

A Roadiz CMS telepítése Debian 9 rendszeren

Más rendszert használ? Bevezetés A Roadiz egy modern CMS, amelyet számos szolgáltatás kezelésére terveztek. A Symfony összetevői és a Doctrine ORM alapján, i

A Microweber telepítése Debian 9 rendszerre

A Microweber telepítése Debian 9 rendszerre

Más rendszert használ? A Microweber egy nyílt forráskódú drag and drop CMS és online bolt. A Microweber forráskódja a GitHubon található. Ez az útmutató megmutatja neked

A Grav CMS telepítése a Fedora 28-ra

A Grav CMS telepítése a Fedora 28-ra

Más rendszert használ? A Grav egy nyílt forráskódú, lapos fájlú CMS, amelyet PHP-ben írtak. A Grav-forráskód nyilvánosan a GitHubon található. Ez az útmutató megmutatja, hogyan t

A Grav CMS telepítése Debian 9 rendszeren

A Grav CMS telepítése Debian 9 rendszeren

Más rendszert használ? A Grav egy nyílt forráskódú, lapos fájlú CMS, amelyet PHP-ben írtak. A Grav-forráskód nyilvánosan a GitHubon található. Ez az útmutató megmutatja, hogyan t

Az Automad CMS telepítése CentOS 7 rendszeren

Az Automad CMS telepítése CentOS 7 rendszeren

Más rendszert használ? Az Automad egy nyílt forráskódú fájl alapú tartalomkezelő rendszer (CMS) és PHP nyelven írt sablonmotor. Az Automad forráskód i

A Raneto telepítése Ubuntu 17.10-re

A Raneto telepítése Ubuntu 17.10-re

A Raneto egy ingyenes, nyílt forráskódú tudásbázis, amely Node.js-re épül, és amely könnyen beállítható és használható, valamint könnyen adminisztrálható. Kategóriák és oldalak ar

A Thelia 2.3 telepítése Ubuntu 16.04-re

A Thelia 2.3 telepítése Ubuntu 16.04-re

Más rendszert használ? A Thelia egy nyílt forráskódú eszköz e-üzleti webhelyek létrehozására és PHP-ben írt online tartalmak kezelésére. Thelia forráskód i

Az October 1.0 CMS telepítése Debian 9 LAMP VPS-re

Az October 1.0 CMS telepítése Debian 9 LAMP VPS-re

Más rendszert használ? Az október 1.0 CMS egy egyszerű és megbízható, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS), amely a Laravel keretrendszerre épül.

Az ImpressPages CMS 5.0 telepítése Ubuntu 16.04 LAMP VPS-re

Az ImpressPages CMS 5.0 telepítése Ubuntu 16.04 LAMP VPS-re

Más rendszert használ? Az ImpressPages CMS 5.0 egy egyszerű és hatékony, ingyenes és nyílt forráskódú, felhasználóbarát, MVC-alapú tartalomkezelő rendszer (CMS).

A CMS Made Simple 2.2 telepítése Debian 9 LAMP VPS-re

A CMS Made Simple 2.2 telepítése Debian 9 LAMP VPS-re

Más rendszert használ? A CMS Made Simple 2.2 egy rugalmas és bővíthető, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS), amelyet intelligensen terveztek

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <<strong>>Windows ISO<<strong>> előállításának lépéseit az NTLite segítségével.

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é.