Előfeltételek
Swap partíció létrehozása
Telepítse a fonalat
Telepítse a Node.js alkalmazást
Telepítse a Process Manager 2-t
Adja hozzá az alkalmazását folyamatként
Az alkalmazás automatikus indítása rendszerindításkor
Tesztelés
Az alkalmazás új verzióinak telepítése
Használati példa
A Node.js alkalmazások méretezhetőségük miatt népszerűek. Több egyidejű folyamat több kiszolgálón történő futtatása alacsonyabb késleltetést és hosszabb üzemidőt eredményez. Több kiszolgáló kezelésekor a legegyszerűbb, ha a Node.js alkalmazásokat összeomlás esetén automatikusan újraindul. Ez az oktatóanyag bemutatja, hogyan állíthatja be gyorsan az alkalmazás megmaradását egy üres Ubuntu 16.04 példányból.
Előfeltételek
- Hozzon létre bármilyen méretű Vultr-példányt az Ubuntu 16.04 LTS x64 segítségével.
- Ha nem root felhasználó, futtassa,
sudo -sés írja be jelszavát. Root hozzáférés szükséges az indítófájl módosításához, hogy a folyamatkezelő elinduljon rendszerindításkor.
- Győződjön meg arról, hogy a Node.js telepítve van a példányon, és hogy a Node.js verziója 8.9.3 LTS vagy újabb, ami szükséges a perzisztenciakezelő zökkenőmentes működéséhez. Használja
node -va telepített verzió ellenőrzésére. Ha a Node.js verziója nem a megfelelő, akkor a következő parancsok telepítik azt.
Telepítse a Node.js-t.
$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
Swap partíció létrehozása
Ez a lépés nem kötelező, de ajánlott a telepítéshez. A cserepartíciók a merevlemez azon részei, amelyek célja a RAM kiegészítése. Kisebb Vultr-példányokon, például az 512 MB-os RAM-példányon, a swap partíció létrehozása előnyös lenne a teljesítmény szempontjából. A swap oktatóanyag automatizált verziójához használja az alábbi parancsokat.
$ git clone https://github.com/teamtofu/server-tools.git tools
$ bash ./tools/swap.sh
Általánosságban elmondható, hogy a swap használata nem szükséges 4 GB vagy annál nagyobb RAM-mal rendelkező példányok esetén, amikor állandó alkalmazásokat állít be, bár javíthatja az alkalmazások teljesítményét. A RAM jobban reagál, mint a swap, így a több RAM-mal rendelkező példányok általában jobb eredményeket hoznak, függetlenül a cserétől.
Telepítse a fonalat
A Yarn egy könnyen használható csomagkezelő a Facebookról a Node.js csomagokhoz. Gyorsabb, mint az NPM, és determinisztikus is, ami különösen hasznos több kiszolgáló telepítésekor.
$ 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
Az NPM azonban használható a Yarn helyett, és az ebben az oktatóanyagban szereplő összes parancshoz hasonló parancsokat tartalmaz.
Telepítse a Node.js alkalmazást
Ha az alkalmazás egy git tárolóban van tárolva, klónozza azt, és használja a yarn install. Az alkalmazásnak rendelkeznie kell egy szerverbeviteli fájllal, általában server.jsvagy index.js, amelyet a következő lépésekben használunk.
Telepítse a Process Manager 2-t
A Process Manager 2 az a csomag, amely automatikusan újraindítja az alkalmazást. A Process Manager 2 nagyon népszerű, és a Microsoft, a PayPal és az Intuit használja, így biztonságos és megbízható.
$ yarn global add pm2
Adja hozzá az alkalmazását folyamatként
Az alkalmazás démonizálódik (a háttérben fut), és automatikusan újraindul a start paranccsal.
$ pm2 start [path to your entry.js] -i max
Ha a maximális számú folyamatot szeretné automatikusan elindítani, adja át az -i maxargumentumot. Ha ezt a Vultr-példányt kizárólag az alkalmazás kiszolgálására használják, akkor ez ajánlott. Az egynél több CPU-val rendelkező Vultr-példányok esetén több folyamat indul el, és a Process Manager 2 terheléselosztóként működik ezen egyedi folyamatok mindegyikénél.
Az alkalmazás automatikus indítása rendszerindításkor
Az alkalmazás elindítása után mentse el az alkalmazás konfigurációját. Ezután futtassa az indítási parancsot, hogy a Process Manager 2 automatikusan futtassa a háttérben, amikor az Ubuntu elindul. Ubuntu 16.04 esetén a Process Manager 2 a következőhöz kötődik systemd.
$ pm2 save
$ pm2 startup
Most, ha a Node.js alkalmazás összeomlik egy hiba miatt, újraindul, és ha az Ubuntu bármilyen okból összeomlik, a folyamat automatikusan újraindul az Ubuntuval. A folyamatok újraindíthatók a -val pm2 gracefulReload all, a Process Manager 2 pedig a -val pm2 update. Ha meg szeretné akadályozni, hogy a Process Manager 2 elinduljon rendszerindításkor, futtassa a parancsot pm2 unstartup.
Tesztelés
Próbálja meg beírni, rebootés ellenőrizze, hogy az alkalmazás kiszolgálásra kerül-e az Ubuntu elindulása után. Ha az alkalmazás az internetre készült, és a porton keresztül szolgál ki 80, akkor curl http://localhost/a kezdőoldal HTML-kódja jelenik meg. Abban az esetben, ha nem működik, a parancs pm2 statusmegjeleníti a futó folyamatokat, és a start parancs újra kiadható.
Az alkalmazás új verzióinak telepítése
Ha az alkalmazást frissítik, például egy git-tárház lehívásával, akkor parancsot kell kiadni a futó alkalmazásfolyamatok frissítéséhez.
$ pm2 update
Használati példa
A Parse Server , egy népszerű nyílt forráskódú platform szolgáltatásként, egy alkalmazás háttérprogramjaként szolgál. A háttérrendszer összeomolhat a kódban vagy a kérelmek mennyiségében előforduló hibák miatt, de az alkalmazás nem fog leállást tapasztalni, mert a többi kiszolgáló (és/vagy folyamatok) továbbra is fut, és az elemzési kiszolgáló folyamata gyorsan újraindul.