Предуслови
Направите свап партицију
Инсталирајте Иарн
Инсталирајте своју Ноде.јс апликацију
Инсталирајте Процесс Манагер 2
Додајте своју апликацију као процес
Аутоматски покрените апликацију при покретању
Тестирање
Примена нових верзија апликације
Пример употребе
Ноде.јс апликације су популарне због своје способности скалирања. Покретање више истовремених процеса на више сервера даје мање кашњење и дуже време непрекидног рада. Када управљате више сервера, најлакше је да се Ноде.јс апликације аутоматски поново покрену ако се сруше. Овај водич ће вам показати како да брзо подесите постојаност апликације из празне инстанце Убунту 16.04.
Предуслови
- Направите Вултр инстанцу било које величине помоћу Убунту 16.04 ЛТС к64.
- Ако нисте роот корисник, покрените
sudo -sи унесите своју лозинку. Роот приступ је неопходан да би се изменила датотека за покретање тако да се менаџер процеса покреће при покретању.
- Уверите се да је Ноде.јс инсталиран на инстанци и да је верзија Ноде.јс 8.9.3 ЛТС или новија, што је потребно да би менаџер постојаности радио несметано. Користите
node -vза проверу инсталиране верзије. Ако Ноде.јс није на исправној верзији, следеће команде ће га инсталирати.
Инсталирајте Ноде.јс.
$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
Направите свап партицију
Овај корак је опционалан, али се препоручује за инсталацију. Свап партиције су делови чврстог диска који су намењени за допуну РАМ-а. На мањим Вултр инстанцама, као што је инстанца од 512 МБ РАМ-а, креирање свап партиције би било корисно за перформансе. За аутоматизовану верзију водича за замену, користите наредбе испод.
$ git clone https://github.com/teamtofu/server-tools.git tools
$ bash ./tools/swap.sh
Уопштено говорећи, коришћење замене не би било неопходно за случајеве са 4 ГБ РАМ-а или више када се постављају трајне апликације, иако може побољшати перформансе апликација. РАМ боље реагује од замене, тако да ће инстанце са више РАМ-а дати боље резултате без обзира на замену.
Инсталирајте Иарн
Иарн је једноставан за коришћење менаџер пакета са Фацебоок-а за Ноде.јс пакете. Бржи је од НПМ-а и такође детерминистички, што је посебно корисно када се поставља више сервера.
$ 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
Међутим, НПМ се може користити уместо Иарн-а и има упоредиве команде са свим онима у овом водичу.
Инсталирајте своју Ноде.јс апликацију
Ако се ваша апликација налази у гит спремишту, клонирајте је и користите yarn install. Ваша апликација треба да има фајл за унос сервера, обично server.jsили index.js, који ће се користити у следећим корацима.
Инсталирајте Процесс Манагер 2
Процесс Манагер 2 је пакет који ће аутоматски поново покренути апликацију. Процесс Манагер 2 је веома популаран, а користе га Мицрософт, ПаиПал и Интуит, тако да је сигуран и поуздан.
$ yarn global add pm2
Додајте своју апликацију као процес
Апликација ће бити демонизована (покренута у позадини) и аутоматски поново покренута командом старт.
$ pm2 start [path to your entry.js] -i max
Ако желите да аутоматски покренете максималан број процеса, проследите -i maxаргумент. Ако је једина употреба ове Вултр инстанце да служи апликацији, онда се ово препоручује. За Вултр инстанце са више од једног ЦПУ-а, покренуће се више процеса, а Процесс Манагер 2 ће деловати као балансатор оптерећења за све ове појединачне процесе.
Аутоматски покрените апликацију при покретању
Након покретања апликације, сачувајте конфигурацију апликације. Затим покрените наредбу за покретање да бисте аутоматски покренули Процесс Манагер 2 у позадини када се Убунту покрене. За Убунту 16.04, Процесс Манагер 2 ће се везати за systemd.
$ pm2 save
$ pm2 startup
Сада ако се ваша Ноде.јс апликација сруши због грешке, она ће се поново покренути, а ако се Убунту сруши из било ког разлога, процес ће се аутоматски поново покренути са Убунтуом. Процеси се могу поново покренути са pm2 gracefulReload allи Процесс Манагер 2 се може поново покренути са pm2 update. Да бисте зауставили покретање Процесс Манагер-а 2 при покретању, покрените pm2 unstartup.
Тестирање
Покушајте да куцате rebootи проверите да ли се ваша апликација послужује након што се Убунту покрене. Ако је апликација за веб и послужује се преко порта 80, тада curl http://localhost/ће се приказати ХТМЛ за почетну страницу. У случају да не ради, команда pm2 statusће приказати покренуте процесе, а стартна команда се може поново издати.
Примена нових верзија апликације
Ако се апликација ажурира, на пример повлачењем гит спремишта, онда се мора издати команда за ажурирање покренутих процеса апликације.
$ pm2 update
Пример употребе
Парсе Сервер , популарна платформа отвореног кода као услуга, служи као позадина за апликацију. Позадински део може да се сруши због грешака у коду или обима захтева, али апликација неће искусити застоје јер други сервери (и/или процеси) настављају да раде, а процес Парсе Сервер се брзо поново покреће.