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.


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

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