Node.js püsivate rakenduste seadistamine versioonis Ubuntu 16.04

Node.js rakendused on populaarsed oma skaleerimisvõime tõttu. Mitme samaaegse protsessi käivitamine mitmes serveris annab väiksema latentsusaega ja pikema tööaja. Mitme serveri haldamisel on kõige lihtsam lasta Node.js-i rakendustel krahhi korral automaatselt taaskäivitada. See õpetus näitab, kuidas kiiresti seadistada rakenduse püsivust tühjast Ubuntu 16.04 eksemplarist.

Eeltingimused

  • Looge Ubuntu 16.04 LTS x64 abil mis tahes suurusega Vultri eksemplar.
  • Kui te pole juurkasutaja, käivitage sudo -sja sisestage oma parool. Käivitusfaili muutmiseks nii, et protsessihaldur käivitub alglaadimisel, on vajalik juurjuurdepääs.
  • Veenduge, et eksemplarile on installitud Node.js ja et Node.js-i versioon oleks 8.9.3 LTS või uuem, mis on vajalik püsivushalduri tõrgeteta töötamiseks. Kasutage node -vinstallitud versiooni kontrollimiseks. Kui Node.js ei ole õiges versioonis, installivad selle järgmised käsud.

Installige Node.js.

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

Loo vahetuspartitsioon

See samm on valikuline, kuid installimisel soovitatav. Vahetuspartitsioonid on kõvaketta osad, mis on mõeldud RAM-i täiendamiseks. Väiksematel Vultri eksemplaridel, näiteks 512 MB RAM-i eksemplaril, oleks vahetuspartitsiooni loomine jõudlusele kasulik. Vahetusõpetuse automatiseeritud versiooni jaoks kasutage allolevaid käske.

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

Üldiselt poleks swapi kasutamine püsivate rakenduste seadistamisel vajalik juhtudel, kui RAM on 4 GB või rohkem, kuigi see võib rakenduste jõudlust parandada. RAM reageerib paremini kui vahetus, nii et suurema RAM-iga eksemplarid annavad paremaid tulemusi olenemata vahetusest.

Installige lõng

Lõng on hõlpsasti kasutatav Facebooki paketihaldur Node.js-i pakettide jaoks. See on kiirem kui NPM ja ka deterministlik, mis on eriti kasulik mitme serveri juurutamisel.

$ 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

Lõnga asemel saab siiski kasutada NPM-i ja sellel on võrreldavad käsud kõigi selles õpetuses kirjeldatutega.

Installige rakendus Node.js

Kui teie rakendus on hostitud git-hoidlas, kloonige see ja kasutage yarn install. Teie rakendusel peaks olema serveri sisestusfail, tavaliselt server.jsvõi index.js, mida kasutatakse järgmistes etappides.

Installige protsessihaldur 2

Process Manager 2 on pakett, mis taaskäivitab rakenduse automaatselt. Process Manager 2 on väga populaarne ning seda kasutavad Microsoft, PayPal ja Intuit, seega on see turvaline ja usaldusväärne.

$ yarn global add pm2

Lisage oma taotlus protsessina

Rakendus deemoniseeritakse (töötatakse taustal) ja taaskäivitatakse automaatselt käivituskäsuga.

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

Kui soovite maksimaalse arvu protsesse automaatselt käivitada, edastage -i maxargument. Kui seda Vultri eksemplari kasutatakse ainult rakenduse teenindamiseks, on see soovitatav. Rohkem kui ühe protsessoriga Vultri eksemplaride puhul käivitatakse mitu protsessi ja protsessihaldur 2 toimib kõigi nende üksikute protsesside koormuse tasakaalustajana.

Käivitage rakendus alglaadimisel automaatselt

Pärast rakenduse käivitamist salvestage rakenduse konfiguratsioon. Seejärel käivitage käivituskäsk, et protsessihaldur 2 automaatselt taustal käivitada, kui Ubuntu käivitub. Ubuntu 16.04 puhul seob protsessihaldur 2 systemd.

$ pm2 save
$ pm2 startup

Kui teie rakendus Node.js jookseb tõrke tõttu kokku, käivitub see uuesti ja kui Ubuntu mingil põhjusel kokku jookseb, taaskäivitub protsess automaatselt koos Ubuntuga. Protsesse saab taaskäivitada rakendusega pm2 gracefulReload allja protsessihaldurit 2 saab taaskäivitada rakendusega pm2 update. Process Manager 2 käivitamise peatamiseks käivitamisel käivitage pm2 unstartup.

Testimine

Proovige tippida rebootja kontrollida, kas teie rakendust serveeritakse pärast Ubuntu käivitamist. Kui rakendus on veebi jaoks ja seda teenindatakse pordi kaudu 80, curl http://localhost/kuvatakse avalehe HTML-kood. Kui see ei tööta, pm2 statuskuvab käsk töötavaid protsesse ja käivituskäsu saab uuesti välja anda.

Rakenduse uute versioonide juurutamine

Kui rakendust värskendatakse, näiteks tõmmatakse git-hoidla, tuleb väljastada käsk töötavate rakendusprotsesside värskendamiseks.

$ pm2 update

Kasutamise näide

Parse Server , populaarne avatud lähtekoodiga platvorm teenusena, toimib rakenduse taustaprogrammina. Taustaprogramm võib vigade tõttu koodis või päringute mahus kokku jooksma, kuid rakendus ei koge seisakuid, kuna teised serverid (ja/või protsessid) jätkavad töötamist ning parseserveri protsess taaskäivitatakse kiiresti.

Jäta kommentaar

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit