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.

Palikti komentarą

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.

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.

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.

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į