Nustatykite Keystone.js serverį naudodami „Nginx Reverse Proxy“ Ubuntu 16.04

Šioje pamokoje mes nustatysime žiniatinklio serverį su atvirkštiniu tarpiniu serveriu. TVS, kurią naudosime, yra Keystone.js, gerai žinoma žiniatinklio programų sistema, pagrįsta Express.js. Atvirkštinis tarpinis serveris, kurį naudosime, yra „Nginx“, kuris yra nemokamas atvirojo kodo atvirkštinis tarpinis serveris, taip pat HTTP serveris. Duomenų bazė, kurią naudosime, yra MongoDB, NoSQL dokumentų duomenų bazė. Tam reikės turėti domeną su nustatytais įrašais. Jei to rinkinio neturite, pasirūpinkite tuo ir grįžkite į šią mokymo programą.

Mazgo diegimas

Pirmiausia įdiegsime Node.js, kuris yra „Javascript“ interpretatorius, pagrįstas „Chrome V8 Javascript“ varikliu.

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

Nginx diegimas

Tada įdiegsime „Nginx“, mūsų atvirkštinį tarpinį serverį.

sudo apt update
sudo apt install nginx

Tai atnaujins paketų sąrašus ir įdiegs „Nginx“. Kai diegimas bus baigtas, mes nustatysime savo mazgo projektą.

Inicijuojame mūsų Keystone projektą

Sukurkite mūsų mazgo projektą. Norėdami tai padaryti, tiesiog sukurkite naują aplanką.

mkdir website

Tada mes sukursime savo package.jsonfailą. Norėdami tai padaryti, tiesiog paleiskite npm initsavo terminalą, užpildykite laukus ir atsakykite „ yes“, kad patvirtintumėte. Sukūrę package.jsonfailą, mes įdiegsime šiuos mazgo modulius.

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

Baigę juos atsisiųsti, paleiskite šiuos veiksmus.

yo keystone

Užpildykite reikiamus laukus. Jis lieps už project nameThe template engine, emailuž valdymo pulto, ir pan. Jei nežinote, ką pasirinkti, tada numatytieji nustatymai bus tinkami. Po to, kai sukonfigūravote trapinės reikšmės sąranką, galime patikrinti, ar mūsų serveris veikia, įvesdami, node keystonekad paleistumėte programą. Pagal numatytuosius nustatymus jūsų programa veiks localhost, prievade 3000. Atminkite, kad jei neįdiegėte MongoDB, duomenų bazė jums nebus iš karto pasiekiama. Galite sužinoti, kaip jį įdiegti vėliau, mokomojoje programoje.

Štai pagrindinis Keystone.js katalogo išdėstymas:

  • /lib - Čia saugosite savo pasirinktines bibliotekas ir kitą kodą.

  • /models- Čia saugosite savo programos duomenų bazės modelius. KeystoneJS naudoja MongoDB kaip duomenų bazės teikėją.

  • /public - Čia bus saugomi jūsų statiniai failai (CSS, JS, vaizdai ir pan.).

  • /routes/api – Čia bus saugomi jūsų programos API valdikliai.

  • /routes.views - Čia bus saugomi programų peržiūros valdikliai.

  • /templates – Čia bus saugomi visi jūsų programos šablonų failai.

  • /updates – Čia bus saugomi jūsų perkėlimo scenarijai.

  • package.json – Tai jūsų npm konfigūracijos failas, kurį generatorius mums sugeneravo.

  • keystone.js - Mūsų pagrindinis pradžios failas, jį paleidžiame, kai paleidžiame svetainę.

Inicijuojama mūsų duomenų bazė

Kaip minėta anksčiau, mūsų duomenų bazė, kurią naudosime, yra MongoDB, kuri yra patikima NoSQL, į dokumentus orientuota duomenų bazė. Jei jau esate įdiegę MongoDB, galite praleisti šį skyrių. Jei ne, tada štai kaip jį įdiegti Ubuntu 16.04.

Importuokite viešąjį raktą, naudojamą mongoDB paketui.

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

Sukurkite sąrašo failą, naudojamą paketui įdiegti.

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

Atnaujinkite savo paketų sąrašus naudodami apt.

sudo apt update

Galiausiai įdiekite MongoDB.

sudo apt install mongodb-org -y

Kai šis diegimas bus baigtas, paleiskite MongoDB.

sudo service mongod start

Tai pradės MongoDB procesą prievade 27017.

„MongoDB“ bus naudojama visoje programoje ir bus naudojama informacijai, kurią naudojame savo modeliams, saugoti, pavyzdžiui, Usermodeliui. Keystone naudoja ją kaip pasirinktą duomenų bazę ir šiuo metu negalite naudoti kitų duomenų bazių tiekėjų.

PM2 montavimas

Dabar atėjo laikas įdiegti PM2 (Process Manager 2.) PM2 yra procesų tvarkyklė Node.js programoms, npm modulio forma. Tai yra paprastas būdas valdyti programas ir paleisti jas fone. Kadangi jis yra NPM, viskas, ką turime padaryti, kad jį įdiegtume, yra atlikti toliau nurodytus veiksmus.

sudo npm install pm2 -g

Tai nurodo npm įdiegti jį visame pasaulyje, kad galėtume jį naudoti bet kurioje mūsų sistemos vietoje.

Programos paleidimas / valdymas PM2

Anksčiau savo žiniatinklio programą paleidome naudodami node keystone. Su PM2 viskas yra šiek tiek kitaip. Dabar paleidžiame savo mazgo programą naudodami toliau nurodytus veiksmus.

pm2 start keystone.js

Taip mūsų PM2 programa bus įtraukta į mūsų procesų sąrašą ir bus rodomas mažas langelis, kad pamatytumėte, ar ji tikrai yra internete. Atkreipkite dėmesį į langelį, pažymėtą idjūsų procesui. Laikykite tai arti, nes vėliau pateiksime daug nuorodų į tai.

Norėdami pamatyti savo programos žurnalus.

pm2 logs [id]

Pavyzdžiui, pm2 logs 0jei tai jūsų pirmoji PM2 programa.

Norėdami bet kada sustabdyti žiniatinklio programą.

pm2 stop [id]

Norėdami visiškai ištrinti programą.

pm2 delete [id]

PM2 netgi turi stebėjimo prietaisų skydelį, jei norite pamatyti pagrindinę savo programos statistiką, ir galite ją pasiekti naudodami šią.

pm2 monit

Tai parodys tam tikrą pagrindinę informaciją, pvz., RAM naudojimą, procesoriaus naudojimą ir veikimo laiką.

Puiki funkcija, kurią siūlo PM2, yra watching. Iš esmės žiūrima, kai PM2 automatiškai aptinka bet kurio failo pakeitimus tame pačiame kataloge kaip ir pradžios failas, ir automatiškai iš naujo paleis programą. Norėdami tai įjungti, tiesiog iš naujo paleiskite programą, bet perduokite jai laikrodžio vėliavėlę.

pm2 restart [id] --watch

Norėdami išjungti žiūrėjimą, kai jis buvo įjungtas, tiesiog paleiskite tą pačią komandą dar kartą ir žiūrėjimas bus išjungtas.

Šioje pamokoje žiūrėjimą paliksime.

Atvirkštinio tarpinio serverio nustatymas

Įsitikinkite, kad įdiegėte „Nginx“. Jei dėl kokių nors priežasčių taip nėra, žr. aukščiau nurodytus veiksmus.

Sureguliuokite ugniasienės nustatymus. Ubuntu ufwyra oficiali ugniasienė. Pagal numatytuosius nustatymus ryšiai blokuojami prievade 80. Turime pridėti „Nginx on port“ išimtį 80, kurioje veiks mūsų žiniatinklio programa.

sudo ufw allow 'Nginx HTTP'

Patikrinkite, ar veikia jūsų Nginx serveris.

systemctl status nginx

Jei Activeskiltyje matote active (running), tada viskas nustatyta. Jei ne, galite pabandyti iš naujo paleisti paslaugą.

systemctl restart nginx

Ištrinkite numatytąjį Nginx konfigūracijos failą.

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

Sukurkite naują ir tiesiog paskambinkite node.

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

Įklijuokite toliau pateiktą informaciją į failą ir pakeiskite example.comsavo svetainės domenu.

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

Atminkite, kad proxy_passžymi IP, kuriame mūsų Keystone programa veikia vietoje, kuri yra localhostprievade 3000. listen 80yra prievadas, į kurį norime, kad programa būtų nukreipta, o šiuo atveju tai yra prievadas 80.

Tada turime sukurti simbolinę nuorodą arba simbolinę nuorodą į aplanką, vadinamą sites-enabled. Skirtumas tarp sites-enabledir sites-availableyra tas, kad sites-enablediš tikrųjų įkelia Nginx.

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

Dabar jūsų konfigūracijos failas sites-availablebus paruoštas naudoti ir bus įkeltas iš sites-enabled. Norėdami pritaikyti konfigūraciją, kad ji įsigaliotų, tiesiog iš naujo paleiskite „Nginx“.

sudo systemctl restart nginx

Galiausiai iš naujo paleiskite PM2 programą

pm2 restart [id]

Dabar galite naršyti į savo domeną naršyklėje ir pamatysite Welcome to Keystoneekraną su skydeliu, kuriame galėsite prisijungti.

Jei matote, vadinasi, sėkmingai nustatėte Node.js gamybos žiniatinklio serverį. Jei ne, galbūt vieną veiksmą atlikote neteisingai ir galbūt norėsite grįžti atgal ir atidžiai sekti kiekvieną veiksmą.

Daugiau apie Nginx galite sužinoti apsilankę jų svetainėje .

Tikiuosi, kad jums patiko ši pamoka ir tikiuosi, kad tai padėjo jums sukurti savo žiniatinklio serverį, skirtą gamybai Vultr VPS.


Kaip įdiegti Thelia 2.3 Debian 9

Kaip įdiegti Thelia 2.3 Debian 9

Naudojate kitą sistemą? Thelia yra atvirojo kodo įrankis, skirtas kurti el. verslo svetaines ir valdyti PHP parašytą internetinį turinį. Thelia šaltinio kodas i

Kaip įdiegti „Microweber“ „CentOS 7“.

Kaip įdiegti „Microweber“ „CentOS 7“.

Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys

„Microweber“ diegimas „Ubuntu 16.04“.

„Microweber“ diegimas „Ubuntu 16.04“.

Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys

Kaip įdiegti dotCMS Ubuntu 16.04

Kaip įdiegti dotCMS Ubuntu 16.04

Naudojate kitą sistemą? DotCMS yra atvirojo kodo, įmonės lygio turinio valdymo sistema, parašyta Java. Jame yra beveik visos reikalingos funkcijos t

Kaip įdiegti Pagekit 1.0 TVS FreeBSD 11 FAMP VPS

Kaip įdiegti Pagekit 1.0 TVS FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? Pagekit 1.0 TVS yra graži, modulinė, išplečiama ir lengva, nemokama ir atviro kodo turinio valdymo sistema (TVS) su

Kaip įdiegti „BigTree CMS“ Fedora 26 LAMP VPS

Kaip įdiegti „BigTree CMS“ Fedora 26 LAMP VPS

Naudojate kitą sistemą? BigTree CMS 4.2 yra greita ir lengva, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), turinti platų

Pagekit CMS diegimas Ubuntu 16.04 LTS

Pagekit CMS diegimas Ubuntu 16.04 LTS

Naudojate kitą sistemą? Pagekit yra atvirojo kodo TVS, parašyta PHP. „Pagekit“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti

Kaip įdiegti PyroCMS Ubuntu 16.04

Kaip įdiegti PyroCMS Ubuntu 16.04

Naudojate kitą sistemą? PyroCMS yra atvirojo kodo TVS, parašyta PHP. PyroCMS šaltinio kodas yra priglobtas GitHub. Šiame vadove gerai eikite per visą

Kaip įdiegti Subrion 4.1 TVS FreeBSD 11 FAMP VPS

Kaip įdiegti Subrion 4.1 TVS FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? Subrion 4.1 TVS yra galinga ir lanksti atvirojo kodo turinio valdymo sistema (TVS), kuri suteikia intuityvų ir aiškų turinį

Kaip įdiegti Backdrop CMS 1.8.0 Debian 9 LAMP VPS

Kaip įdiegti Backdrop CMS 1.8.0 Debian 9 LAMP VPS

Naudojate kitą sistemą? Backdrop CMS 1.8.0 yra paprasta ir lanksti, mobiliesiems pritaikyta nemokama ir atvirojo kodo turinio valdymo sistema (TVS), kuri leidžia mums

Kaip įdiegti „Roadiz CMS“ „Debian 9“.

Kaip įdiegti „Roadiz CMS“ „Debian 9“.

Naudojate kitą sistemą? Įvadas Roadiz yra moderni TVS, skirta daugelio tipų paslaugoms tvarkyti. Remiantis Symfony komponentais ir doktrina ORM, t

„Microweber“ diegimas „Debian 9“.

„Microweber“ diegimas „Debian 9“.

Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys

Kaip įdiegti „Grav CMS“ „Fedora 28“.

Kaip įdiegti „Grav CMS“ „Fedora 28“.

Naudojate kitą sistemą? Grav yra atvirojo kodo plokščių failų TVS, parašyta PHP. „Grav“ šaltinio kodas viešai priglobtas „GitHub“. Šis vadovas parodys, kaip t

Kaip įdiegti „Grav CMS“ „Debian 9“.

Kaip įdiegti „Grav CMS“ „Debian 9“.

Naudojate kitą sistemą? Grav yra atvirojo kodo plokščių failų TVS, parašyta PHP. „Grav“ šaltinio kodas viešai priglobtas „GitHub“. Šis vadovas parodys, kaip t

Kaip įdiegti „Automad CMS“ „CentOS 7“.

Kaip įdiegti „Automad CMS“ „CentOS 7“.

Naudojate kitą sistemą? Automad yra atvirojo kodo failais pagrįsta turinio valdymo sistema (TVS) ir šablonų variklis, parašytas PHP. „Automad“ šaltinio kodas i

Kaip įdiegti „Raneto“ Ubuntu 17.10

Kaip įdiegti „Raneto“ Ubuntu 17.10

„Raneto“ yra nemokama atvirojo kodo žinių bazė, sukurta naudojant Node.js, kurią lengva nustatyti ir naudoti, taip pat lengva administruoti. Kategorijos ir puslapiai ar

Kaip įdiegti Thelia 2.3 Ubuntu 16.04

Kaip įdiegti Thelia 2.3 Ubuntu 16.04

Naudojate kitą sistemą? Thelia yra atvirojo kodo įrankis, skirtas kurti el. verslo svetaines ir valdyti PHP parašytą internetinį turinį. Thelia šaltinio kodas i

Kaip įdiegti October 1.0 CMS Debian 9 LAMP VPS

Kaip įdiegti October 1.0 CMS Debian 9 LAMP VPS

Naudojate kitą sistemą? Spalio 1.0 TVS yra paprasta ir patikima, nemokama ir atviro kodo turinio valdymo sistema (TVS), sukurta remiantis Laravel sistema

Kaip įdiegti ImpressPages CMS 5.0 Ubuntu 16.04 LAMP VPS

Kaip įdiegti ImpressPages CMS 5.0 Ubuntu 16.04 LAMP VPS

Naudojate kitą sistemą? ImpressPages CMS 5.0 yra paprasta ir efektyvi, nemokama ir atviro kodo, patogi, MVC pagrįsta turinio valdymo sistema (TVS).

Kaip įdiegti CMS Made Simple 2.2 Debian 9 LAMP VPS

Kaip įdiegti CMS Made Simple 2.2 Debian 9 LAMP VPS

Naudojate kitą sistemą? CMS Made Simple 2.2 yra lanksti ir išplečiama, nemokama ir atvirojo kodo turinio valdymo sistema (TVS), sumaniai sukurta

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį