Kaip nustatyti Node.js nuolatines programas Ubuntu 16.04

Node.js programos yra populiarios dėl savo mastelio. Vykdant kelis vienu metu vykstančius procesus keliuose serveriuose, sumažėja delsa ir ilgesnis veikimo laikas. Kai valdote kelis serverius, lengviausia Node.js programas automatiškai paleisti iš naujo, jei jos sugenda. Ši pamoka parodys, kaip greitai nustatyti programos patvarumą iš tuščio Ubuntu 16.04 egzemplioriaus.

Būtinos sąlygos

  • Sukurkite bet kokio dydžio Vultr egzempliorių naudodami Ubuntu 16.04 LTS x64.
  • Jei nesate root naudotojas, paleiskite sudo -sir įveskite slaptažodį. Norint modifikuoti paleisties failą, kad proceso tvarkyklė būtų paleista įkrovos metu, reikalinga šakninė prieiga.
  • Įsitikinkite, kad Node.js yra įdiegtas egzemplioriuje ir kad Node.js versija yra 8.9.3 LTS arba naujesnė, o tai reikalinga, kad pastovumo tvarkyklė veiktų sklandžiai. Naudokite node -vnorėdami patikrinti įdiegtą versiją. Jei Node.js versija nėra tinkama, ją įdiegs šios komandos.

Įdiekite Node.js.

$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

Sukurkite apsikeitimo skaidinį

Šis veiksmas yra neprivalomas, bet rekomenduojamas diegimui. Apsikeitimo skaidiniai yra standžiojo disko dalys, kurios yra skirtos padėti papildyti RAM. Mažesniuose „Vultr“ egzemplioriuose, pvz., 512 MB RAM, apsikeitimo skaidinio sukūrimas būtų naudingas našumui. Norėdami gauti automatizuotą apsikeitimo mokymo programos versiją, naudokite toliau pateiktas komandas.

$ git clone https://github.com/teamtofu/server-tools.git tools
$ bash ./tools/swap.sh

Paprastai tariant, apsikeitimo naudoti nereikėtų, kai yra 4 GB ar daugiau RAM, kai nustatomos nuolatinės programos, nors tai gali pagerinti programų našumą. RAM reaguoja labiau nei apsikeitimas, todėl egzemplioriai, turintys daugiau RAM, duoda geresnių rezultatų, nepaisant apsikeitimo.

Įdiekite verpalus

Verpalai yra paprasta naudoti paketų tvarkyklė iš Facebook, skirta Node.js paketams. Jis yra greitesnis nei NPM ir deterministinis, o tai ypač naudinga diegiant kelis serverius.

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn

Tačiau vietoj „Yarn“ galima naudoti NPM, o jo komandos yra panašios į visas šiame vadove pateiktas komandas.

Įdiekite savo Node.js programą

Jei jūsų programa yra priglobta git saugykloje, klonuokite ją ir naudokite yarn install. Jūsų programoje turėtų būti serverio įvesties failas, paprastai server.jsarba index.js, kuris bus naudojamas atliekant kitus veiksmus.

Įdiekite Process Manager 2

Process Manager 2 yra paketas, kuris automatiškai paleis programą iš naujo. Process Manager 2 yra labai populiarus, jį naudoja Microsoft, PayPal ir Intuit, todėl jis yra saugus ir patikimas.

$ yarn global add pm2

Pridėkite savo paraišką kaip procesą

Programa bus demonizuota (paleidžiama fone) ir automatiškai paleista iš naujo naudojant paleidimo komandą.

$ pm2 start [path to your entry.js] -i max

Jei norite automatiškai paleisti maksimalų procesų skaičių, pateikite -i maxargumentą. Jei šis „Vultr“ egzempliorius naudojamas tik programai aptarnauti, tai rekomenduojama. „Vultr“ egzemplioriuose su daugiau nei vienu CPU bus paleisti keli procesai, o „Process Manager 2“ veiks kaip visų šių atskirų procesų apkrovos balansavimo priemonė.

Automatiškai paleiskite programą įkrovos metu

Paleidę programą išsaugokite programos konfigūraciją. Tada paleiskite paleisties komandą, kad automatiškai paleistumėte Process Manager 2 fone, kai paleidžiama Ubuntu. Ubuntu 16.04, Process Manager 2 bus susieta su systemd.

$ pm2 save
$ pm2 startup

Dabar, jei jūsų Node.js programa sugenda dėl klaidos, ji bus paleista iš naujo, o jei Ubuntu sugenda dėl kokios nors priežasties, procesas bus automatiškai paleistas iš naujo naudojant Ubuntu. Procesus galima paleisti iš naujo, pm2 gracefulReload allo Process Manager 2 galima iš naujo paleisti naudojant pm2 update. Norėdami sustabdyti Process Manager 2 paleidimą įkrovos metu, paleiskite pm2 unstartup.

Testavimas

Pabandykite įvesti tekstą rebootir patikrinti, ar jūsų programa pateikiama paleidus Ubuntu. Jei programa skirta žiniatinkliui ir teikiama per prievadą 80, curl http://localhost/bus rodomas pradinio puslapio HTML. Jei ji neveikia, komanda pm2 statusparodys vykdomus procesus, o paleidimo komandą bus galima išleisti iš naujo.

Naujų programos versijų diegimas

Jei programa atnaujinama, pvz., ištraukiant git saugyklą, turi būti išleista komanda atnaujinti veikiančių programų procesus.

$ pm2 update

Naudojimo pavyzdys

Parse Server , populiari atvirojo kodo platforma kaip paslauga, naudojama kaip programos užpakalinė programa. Užpakalinė programa gali sugesti dėl kodo ar užklausų apimties klaidų, tačiau programa neturės prastovos, nes kiti serveriai (ir (arba) procesai) ir toliau veikia, o analizės serverio procesas greitai paleidžiamas iš naujo.


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į