Forutsetninger
Opprett byttepartisjon
Installer garn
Installer Node.js-applikasjonen din
Installer Process Manager 2
Legg til søknaden din som en prosess
Start programmet automatisk ved oppstart
Testing
Distribuerer nye versjoner av applikasjonen
Eksempel på bruk
Node.js-applikasjoner er populære for deres evne til å skalere. Å kjøre flere samtidige prosesser på flere servere gir lavere ventetid og større oppetid. Når du administrerer flere servere, er det enklest å få Node.js-applikasjoner til å starte automatisk på nytt hvis de krasjer. Denne opplæringen vil vise deg hvordan du raskt setter opp applikasjonsvedholdenhet fra en tom Ubuntu 16.04-forekomst.
Forutsetninger
- Lag en Vultr-forekomst av hvilken som helst størrelse med Ubuntu 16.04 LTS x64.
- Hvis du ikke er root-brukeren, kjør
sudo -sog skriv inn passordet ditt. Rottilgang er nødvendig for å endre oppstartsfilen slik at prosessbehandlingen starter ved oppstart.
- Sørg for at Node.js er installert på forekomsten, og at versjonen av Node.js er 8.9.3 LTS eller nyere, noe som kreves for at persistensbehandlingen skal fungere problemfritt. Bruk for
node -vå sjekke versjonen som er installert. Hvis Node.js ikke er på riktig versjon, vil følgende kommandoer installere den.
Installer Node.js.
$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
Opprett byttepartisjon
Dette trinnet er valgfritt, men anbefales for installasjonen. Swap-partisjoner er deler av harddisken som er dedikert til å hjelpe til med å supplere RAM. På mindre Vultr tilfeller, slik som det 512 MB RAM eksempel, og skaper en swap ville være gunstig for ytelsen. For en automatisert versjon av swap-opplæringen, bruk kommandoene nedenfor.
$ git clone https://github.com/teamtofu/server-tools.git tools
$ bash ./tools/swap.sh
Generelt sett vil det ikke være nødvendig å bruke swap for tilfeller med 4 GB RAM eller mer når du setter opp vedvarende applikasjoner, selv om det kan forbedre applikasjonenes ytelse. RAM er mer responsiv enn swap, så tilfeller med mer RAM vil ha en tendens til å gi bedre resultater uavhengig av swap.
Installer garn
Yarn er en brukervennlig pakkebehandling fra Facebook for Node.js-pakker. Det er raskere enn NPM og også deterministisk, noe som er spesielt nyttig når du distribuerer flere servere.
$ 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
Imidlertid kan NPM brukes i stedet for Yarn, og den har kommandoer som kan sammenlignes med alle de i denne opplæringen.
Installer Node.js-applikasjonen din
Hvis applikasjonen din er vert i et git-repository, kloner du den og bruker yarn install. Applikasjonen din bør ha en serveroppføringsfil, vanligvis server.jseller index.js, som vil bli brukt i de neste trinnene.
Installer Process Manager 2
Process Manager 2 er pakken som automatisk vil starte applikasjonen på nytt. Process Manager 2 er veldig populær, og den brukes av Microsoft, PayPal og Intuit, så den er sikker og pålitelig.
$ yarn global add pm2
Legg til søknaden din som en prosess
Applikasjonen vil demoniseres (kjøres i bakgrunnen) og startes automatisk på nytt med start-kommandoen.
$ pm2 start [path to your entry.js] -i max
Hvis du vil starte maksimalt antall prosesser automatisk, send -i maxargumentet. Hvis den eneste bruken av denne Vultr-forekomsten er å betjene applikasjonen, anbefales dette. For Vultr-forekomster med mer enn én CPU, vil flere prosesser bli lansert, og Process Manager 2 vil fungere som lastbalanser for alle disse individuelle prosessene.
Start programmet automatisk ved oppstart
Etter å ha startet appen, lagre applikasjonens konfigurasjon. Kjør deretter oppstartskommandoen for automatisk å kjøre Process Manager 2 i bakgrunnen når Ubuntu starter opp. For Ubuntu 16.04 vil Process Manager 2 binde seg til systemd.
$ pm2 save
$ pm2 startup
Nå hvis Node.js-applikasjonen din krasjer på grunn av en feil, vil den starte på nytt, og hvis Ubuntu krasjer av en eller annen grunn, vil prosessen automatisk starte på nytt med Ubuntu. Prosessene kan startes på nytt med pm2 gracefulReload allog Process Manager 2 kan startes på nytt med pm2 update. For å stoppe Process Manager 2 fra å starte ved oppstart, kjør pm2 unstartup.
Testing
Prøv å skrive rebootog sjekk for å se om applikasjonen din blir servert etter at Ubuntu har startet opp. Hvis applikasjonen er for nettet og servert over port 80, curl http://localhost/viser HTML-koden for startsiden. I tilfelle det ikke fungerer, vil kommandoen pm2 statusvise de kjørende prosessene, og startkommandoen kan gis på nytt.
Distribuerer nye versjoner av applikasjonen
Hvis applikasjonen oppdateres, for eksempel ved å trekke et git-depot, må en kommando utstedes for å oppdatere de kjørende applikasjonsprosessene.
$ pm2 update
Eksempel på bruk
Parse Server , en populær åpen kildekode-plattform som en tjeneste, fungerer som en backend for en applikasjon. Backend kan krasje på grunn av feil i kode eller volum av forespørsler, men applikasjonen vil ikke oppleve noen nedetid fordi de andre serverne (og/eller prosessene) fortsetter å kjøre, og Parse Server-prosessen startes raskt på nytt.