Автозапуск nuxt приложения с помощью PM2

PM2 - это диспетчер процессов с открытым исходным кодом, который поможет вам управлять вашим приложением и поддерживать его работу. В основном применяется в средах, где необходимо запустить приложение на NodeJS и забыть о нём, позволяющий кластеризировать приложение и гибко распределять нагрузку между ядрами процессора. Начать работу с PM2 несложно, он предлагается в виде простого и интуитивно понятного интерфейса командной строки.

Установка PM2 и настройка приложения

Последнюю версию PM2 можно установить с помощью NPM

npm install pm2@latest -g

После установки PM2 в корне нашего проекта необходимо создать файл конфигурации с названием ecosystem.config.js и скопировать в него содержимое.

module.exports = {
   apps: [
     {
       name: 'nuxtApp',
       exec_mode: 'cluster',
       instances: 'max',
       script: './node_modules/nuxt/bin/nuxt.js',
       args: 'start'
     }
   ]
 }

Немного о настройках. Подробнее о других параметрах можно прочитать на сайте PM2

ПолеПримерОписание
name"nuxtApp"Имя приложения
script"./app/app.js"Путь к скрипту
args"start"Строка, содержащая все аргументы, переданные скрипту
instances"max"Кол. запускаемых экземпляров
exec_mode"cluster"Режим для запуска приложения

Далее необходимо пересобрать приложение и запустить его через PM2 командой pm2 start

npm run build
pm2 start

Проверяем состояния нашего приложения

pm2 ls

Тут мы видим, что наше приложение в активном состоянии, не нагружает процессор и потребляет аж целых 142mb памяти.

┌────┬─────────┬─────────┬───┬────────┬─────┬─────────┐
│ id │ name    │ mode    │ ↺ │ status │ cpu │ memory  │
├────┼─────────┼─────────┼───┼────────┼─────┼─────────┤
│ 0  │ nuxtApp │ cluster │ 0 │ online │ 0%  │ 142.9mb │
└────┴─────────┴─────────┴───┴────────┴─────┴─────────┘

Автозапуск

Для автоматического запуска нашего приложения PM2 может генерировать скрипт, который будет поднимать все необходимые процессы, при запуске операционной системы или неожиданной её перезагрузки. Для этого выполняем команду pm2 startup.

pm2 startup

Далее нужно скопировать и выполнить строку, которую выдает нам PM2 sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u user --hp /home/user, и скрипт запуска будет настроен для вашей ОС.

[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u user --hp /home/user

При обновлении новой версии Node.js нужно будет обновить и скрипт запуска PM2! Используйте сначала pm2 unstartup, затем pm2 startup

После того как запустили все наши приложения, нужно сохранить их список, если хотите чтобы они запустились при перезагрузке компьютера.

pm2 save

PM2 берет на себя действия по мониторингу и поддержания нашего приложений в рабочем состоянии, требуя от нас минимум действий. Конечно, это не все возможности которыми обладает PM2, о других его возвожностях более подробно можно почитать на официальном сайте.

nodejs pm2 nuxt
(0.0) / 0
Прежде чем оставить комментарий, пожалуйста, ознакомьтесь с правилами комментирования. Оставляя комментарий, вы подтверждаете ваше согласие с данными правилами и осознаете возможную ответственность за их нарушение. Все комментарии премодерируются.
0