Asenna Keystone.js-palvelin käyttämällä Nginx Reverse Proxya Ubuntu 16.04:ssä

Tässä opetusohjelmassa määritämme verkkopalvelimen käänteisellä välityspalvelimella. Käyttämämme sisällönhallintajärjestelmä on Keystone.js, tunnettu verkkosovelluskehys, joka perustuu Express.js:ään. Käänteinen välityspalvelin, jota käytämme, on Nginx, joka on ilmainen ja avoimen lähdekoodin käänteinen välityspalvelin sekä HTTP-palvelin. Käyttämämme tietokanta on MongoDB, NoSQL-dokumenttitietokanta. Tämä edellyttää, että sinulla on verkkotunnus, johon on määritetty tietueet. Jos sinulla ei ole kyseistä sarjaa, mene eteenpäin ja huolehdi siitä ja palaa tähän opetusohjelmaan.

Asennetaan Node

Ensin asennamme Node.js:n, joka on Chrome V8 Javascript -moottoriin perustuva Javascript-tulkki.

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

Nginxin asennus

Seuraavaksi asennamme Nginxin, käänteisen välityspalvelimemme.

sudo apt update
sudo apt install nginx

Tämä päivittää pakettiluettelot ja asentaa Nginxin. Kun asennus on valmis, määritämme solmuprojektimme.

Keystone-projektimme alustaminen

Luo solmuprojektimme. Voit tehdä tämän luomalla uuden kansion.

mkdir website

Sitten luomme package.jsontiedostomme. Voit tehdä tämän suorittamalla npm initterminaalin, täyttämällä kentät ja yesvahvistamalla vastaamalla " ". Kun olet luonut package.jsontiedoston, asennamme seuraavat solmumoduulit.

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

Kun ne on ladattu, suorita seuraava.

yo keystone

Täytä pakolliset kentät. Se kysyy sinulta project name, template engine, emailohjauspaneelia ja niin edelleen. Jos et tiedä mitä valita, oletusasetukset ovat kunnossa. Kun olet määrittänyt Keystone-asetuksesi, voimme testata, onko palvelimemme käynnissä kirjoittamalla node keystonekäynnistääksesi sovelluksesi. Oletuksena sovelluksesi on käynnissä localhostportissa 3000. Huomaa, että jos sinulla ei ole MongoDB:tä asennettuna, tietokanta ei ole heti käytettävissäsi. Voit oppia asentamaan sen myöhemmin opetusohjelmassa.

Tässä on Keystone.js:n perushakemistoasettelu:

  • /lib - Tässä tallennat mukautetut kirjastot ja muut koodit.

  • /models- Tässä tallennat sovelluksesi tietokantamallit. KeystoneJS käyttää MongoDB:tä tietokantatoimittajana.

  • /public - Tänne staattiset tiedostosi (CSS, JS, kuvat ja niin edelleen) tallennetaan.

  • /routes/api - Tänne tallennetaan sovelluksesi API-ohjaimet.

  • /routes.views - Sovellusnäkymän ohjaimet tallennetaan tänne.

  • /templates - Tänne tallennetaan kaikki sovelluksesi mallitiedostot.

  • /updates - Tänne siirtoskriptit tallennetaan.

  • package.json - Tämä on npm-määritystiedostosi, jonka generaattori loi meille.

  • keystone.js - Pääaloitustiedostomme, suoritamme tämän, kun käynnistämme verkkosivuston.

Tietokantaamme alustetaan

Kuten aiemmin mainittiin, käyttämämme tietokanta on MongoDB, joka on luotettava NoSQL-dokumenttipohjainen tietokanta. Jos sinulla on jo MongoDB asennettuna, voit ohittaa tämän osion. Jos ei, niin asenna se Ubuntu 16.04:ään seuraavasti.

Tuo mongoDB-paketin julkinen avain.

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

Luo paketin asentamiseen käytetty luettelotiedosto.

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

Päivitä pakettiluettelosi käyttämällä apt.

sudo apt update

Asenna lopuksi MongoDB.

sudo apt install mongodb-org -y

Kun tämä asennus on valmis, käynnistä MongoDB.

sudo service mongod start

Tämä käynnistää MongoDB-prosessin portissa 27017.

MongoDB:tä käytetään koko sovelluksessa ja sitä hyödynnetään malleissamme käyttämämme tiedon, esimerkiksi Usermallin , tallentamiseen . Keystone käyttää sitä tietokantaansa, etkä tällä hetkellä voi käyttää muita tietokantatoimittajia.

PM2:n asennus

Nyt on aika asentaa PM2 (Process Manager 2.) PM2 on prosessinhallinta Node.js-sovelluksille npm-moduulin muodossa. Se tarjoaa helpon tavan hallita sovelluksiasi ja suorittaa niitä taustalla. Koska se on NPM:ssä, meidän tarvitsee vain asentaa se suorittaa seuraava.

sudo npm install pm2 -g

Tämä käskee npm:n asentamaan sen maailmanlaajuisesti, jotta voimme käyttää sitä missä tahansa järjestelmässämme.

Sovelluksen suorittaminen/hallinta PM2:lla

Aiemmin suoritimme verkkosovelluksemme kanssa node keystone. PM2:lla tilanne on hieman erilainen. Suoritamme nyt solmusovelluksemme seuraavalla.

pm2 start keystone.js

Tämä lisää PM2-sovelluksemme prosessiluetteloomme, ja pieni laatikko tulee näkyviin, jotta voit nähdä, että se on todellakin online-tilassa. Huomaa idprosessillesi merkitty laatikko . Pidä tämä lähellä, sillä tulemme tekemään tähän monia viittauksia myöhemmin.

Nähdäksesi sovelluksesi lokit.

pm2 logs [id]

Jos pm2 logs 0tämä on esimerkiksi ensimmäinen PM2-sovelluksesi.

Pysäytä verkkosovelluksesi milloin tahansa.

pm2 stop [id]

Poistaaksesi sovelluksesi kokonaan.

pm2 delete [id]

PM2:ssa on jopa valvontakojelauta, jos haluat nähdä joitain sovelluksesi perustilastoja, ja voit käyttää sitä tällä.

pm2 monit

Tämä näyttää joitain perustietoja, kuten RAM-muistin, suorittimen käytön ja käytettävyyden.

PM2:n hieno ominaisuus on watching. Pohjimmiltaan katselu on sitä, kun PM2 havaitsee automaattisesti muutokset mihin tahansa tiedostoon samassa hakemistossa kuin aloitustiedostosi, ja se käynnistää sovelluksesi automaattisesti uudelleen. Ota se käyttöön käynnistämällä sovellus uudelleen, mutta antamalla sille kellomerkki.

pm2 restart [id] --watch

Jos haluat poistaa katselun käytöstä sen jälkeen, kun se on otettu käyttöön, suorita sama komento uudelleen, jolloin katselu poistetaan käytöstä.

Tässä opetusohjelmassa jätämme katselun pois.

Käänteisen välityspalvelimen määrittäminen

Varmista, että Nginx on asennettu. Jos jostain syystä ei ole, katso yllä olevat vaiheet.

Säädä palomuuriasetuksiasi. Ubuntussa se ufwon virallinen palomuuri. Oletuksena yhteydet estetään portissa 80. Meidän on lisättävä poikkeus Nginx on portille 80, jolla verkkosovelluksemme toimii.

sudo ufw allow 'Nginx HTTP'

Varmista, että Nginx-palvelimesi on käynnissä.

systemctl status nginx

Alle Activeosio, jos näet active (running), niin te kaikki asetettu. Jos ei, voit yrittää käynnistää palvelun uudelleen.

systemctl restart nginx

Poista oletusarvoinen Nginx-määritystiedosto.

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

Luo uusi ja soita sille node.

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

Liitä seuraavat tiedot tiedostoon ja korvaa se example.comverkkosivustosi verkkotunnuksella.

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

Huomaa, että proxy_passtarkoittaa IP-osoitetta, jolla Keystone-sovelluksemme toimii paikallisesti, joka on localhostportissa 3000. listen 80on portti, johon haluamme sovelluksen ohjattavan, mikä tässä tapauksessa on portti 80.

Sitten meidän on luotava symlink tai symbolinen linkki kansioon nimeltä sites-enabled. Ero sites-enabledja sites-availableon se, että sites-enabledon todella ladataan nginx.

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

Nyt määritystiedostosi sites-availableon valmis käytettäväksi ja se ladataan osoitteesta sites-enabled. Ota määritys käyttöön, jotta se astuu voimaan, käynnistämällä Nginx uudelleen.

sudo systemctl restart nginx

Lopuksi käynnistä PM2-sovellus uudelleen

pm2 restart [id]

Nyt voit navigoida verkkotunnukseesi selaimessa, ja näet Welcome to Keystonenäytön, jossa on paneeli, josta voit kirjautua sisään.

Jos näet sen, olet onnistuneesti määrittänyt Node.js-tuotantoverkkopalvelimen. Jos ei, olet saattanut tehdä jonkin vaiheen väärin, ja saatat haluta palata ja seurata jokaista vaihetta huolellisesti.

Voit oppia lisää Nginxistä vierailemalla heidän verkkosivustollaan .

Toivottavasti pidit tästä opetusohjelmasta, ja toivon, että tämä on auttanut sinua määrittämään oman verkkopalvelimesi tuotantoa varten Vultr VPS:ssäsi.


Thelia 2.3:n asentaminen Debian 9:ään

Thelia 2.3:n asentaminen Debian 9:ään

Käytätkö erilaista järjestelmää? Thelia on avoimen lähdekoodin työkalu sähköisen liiketoiminnan verkkosivustojen luomiseen ja PHP:llä kirjoitetun online-sisällön hallintaan. Thelia-lähdekoodi i

Kuinka asentaa Microweber CentOS 7:ään

Kuinka asentaa Microweber CentOS 7:ään

Käytätkö erilaista järjestelmää? Microweber on avoimen lähdekoodin vedä ja pudota sisällönhallintajärjestelmä ja verkkokauppa. Microweber-lähdekoodia isännöidään GitHubissa. Tämä opas näyttää sinulle

Kuinka asentaa dotCMS Ubuntu 16.04:ään

Kuinka asentaa dotCMS Ubuntu 16.04:ään

Käytätkö erilaista järjestelmää? DotCMS on avoimen lähdekoodin, yritystason sisällönhallintajärjestelmä, joka on kirjoitettu Java-kielellä. Se sisältää lähes kaikki tarvittavat ominaisuudet

Pagekit 1.0 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Pagekit 1.0 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Pagekit 1.0 CMS on kaunis, modulaarinen, laajennettava ja kevyt, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jossa on

BigTree CMS:n asentaminen Fedora 26 LAMP VPS:ään

BigTree CMS:n asentaminen Fedora 26 LAMP VPS:ään

Käytätkö erilaista järjestelmää? BigTree CMS 4.2 on nopea ja kevyt, ilmainen ja avoimen lähdekoodin yritystason sisällönhallintajärjestelmä (CMS), jossa on laaja

Pagekit CMS:n asentaminen Ubuntu 16.04 LTS:ään

Pagekit CMS:n asentaminen Ubuntu 16.04 LTS:ään

Käytätkö erilaista järjestelmää? Pagekit on avoimen lähdekoodin CMS, joka on kirjoitettu PHP:llä. Pagekit-lähdekoodia isännöi GitHub. Tämä opas näyttää kuinka asennus tehdään

PyroCMS:n asentaminen Ubuntu 16.04:ään

PyroCMS:n asentaminen Ubuntu 16.04:ään

Käytätkö erilaista järjestelmää? PyroCMS on avoimen lähdekoodin CMS, joka on kirjoitettu PHP:llä. PyroCMS-lähdekoodia isännöidään GitHubissa. Tässä oppaassa käy hyvin läpi koko

Subrion 4.1 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Subrion 4.1 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Subrion 4.1 CMS on tehokas ja joustava avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka tuo intuitiivisen ja selkeän sisällön

Backdrop CMS 1.8.0:n asentaminen Debian 9 LAMP VPS:ään

Backdrop CMS 1.8.0:n asentaminen Debian 9 LAMP VPS:ään

Käytätkö erilaista järjestelmää? Backdrop CMS 1.8.0 on yksinkertainen ja joustava, mobiiliystävällinen, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jonka avulla voimme

Roadiz CMS:n asentaminen Debian 9:ään

Roadiz CMS:n asentaminen Debian 9:ään

Käytätkö erilaista järjestelmää? Johdanto Roadiz on moderni sisällönhallintajärjestelmä, joka on suunniteltu käsittelemään monenlaisia ​​palveluita. Perustuu Symfonyn komponentteihin ja Doctrine ORM:iin, ts

Microweberin asentaminen Debian 9:ään

Microweberin asentaminen Debian 9:ään

Käytätkö erilaista järjestelmää? Microweber on avoimen lähdekoodin vedä ja pudota sisällönhallintajärjestelmä ja verkkokauppa. Microweber-lähdekoodia isännöidään GitHubissa. Tämä opas näyttää sinulle

Grav CMS:n asentaminen Fedora 28:aan

Grav CMS:n asentaminen Fedora 28:aan

Käytätkö erilaista järjestelmää? Grav on avoimen lähdekoodin kiinteätiedostoinen CMS, joka on kirjoitettu PHP:llä. Gravin lähdekoodia isännöidään julkisesti GitHubissa. Tämä opas näyttää sinulle, kuinka t

Grav CMS:n asentaminen Debian 9:ään

Grav CMS:n asentaminen Debian 9:ään

Käytätkö erilaista järjestelmää? Grav on avoimen lähdekoodin kiinteätiedostoinen CMS, joka on kirjoitettu PHP:llä. Gravin lähdekoodia isännöidään julkisesti GitHubissa. Tämä opas näyttää sinulle, kuinka t

Kuinka asentaa Automad CMS CentOS 7:ään

Kuinka asentaa Automad CMS CentOS 7:ään

Käytätkö erilaista järjestelmää? Automad on avoimen lähdekoodin tiedostopohjainen sisällönhallintajärjestelmä (CMS) ja mallipohja, joka on kirjoitettu PHP:llä. Automadin lähdekoodi i

Kuinka asentaa Raneto Ubuntuun 17.10

Kuinka asentaa Raneto Ubuntuun 17.10

Raneto on ilmainen ja avoimen lähdekoodin tietokanta, joka on rakennettu Node.js:lle ja joka on helppo asentaa ja käyttää sekä helposti hallita. Luokat ja sivut ar

Kuinka asentaa Thelia 2.3 Ubuntuun 16.04

Kuinka asentaa Thelia 2.3 Ubuntuun 16.04

Käytätkö erilaista järjestelmää? Thelia on avoimen lähdekoodin työkalu sähköisen liiketoiminnan verkkosivustojen luomiseen ja PHP:llä kirjoitetun online-sisällön hallintaan. Thelia-lähdekoodi i

October 1.0 CMS:n asentaminen Debian 9 LAMP VPS:ään

October 1.0 CMS:n asentaminen Debian 9 LAMP VPS:ään

Käytätkö erilaista järjestelmää? Lokakuu 1.0 CMS on yksinkertainen ja luotettava, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka perustuu Laravel-kehykseen

ImpressPages CMS 5.0:n asentaminen Ubuntu 16.04 LAMP VPS:ään

ImpressPages CMS 5.0:n asentaminen Ubuntu 16.04 LAMP VPS:ään

Käytätkö erilaista järjestelmää? ImpressPages CMS 5.0 on yksinkertainen ja tehokas, ilmainen ja avoimen lähdekoodin, käyttäjäystävällinen, MVC-pohjainen sisällönhallintajärjestelmä (CMS)

CMS Made Simple 2.2:n asentaminen Debian 9 LAMP VPS:ään

CMS Made Simple 2.2:n asentaminen Debian 9 LAMP VPS:ään

Käytätkö erilaista järjestelmää? CMS Made Simple 2.2 on joustava ja laajennettava, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka on älykkäästi suunniteltu

Couch CMS 2.0:n asentaminen Debian 9 LAMP VPS:ään

Couch CMS 2.0:n asentaminen Debian 9 LAMP VPS:ään

Käytätkö erilaista järjestelmää? Couch CMS on yksinkertainen ja joustava, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jonka avulla web-suunnittelijat voivat suunnitella

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja