Как установить и настроить PM2 на серверах Linux

Развертывание – один из наиболее важных и решающих этапов разработки программного обеспечения. Правильная стратегия развертывания жизненно важна для обеспечения наилучшего взаимодействия с пользователями при эффективном использовании ваших услуг. Однако этот процесс также сопряжен со своими проблемами.

Node.js, среда выполнения JavaScript с открытым исходным кодом, является популярным выбором для создания внутренней инфраструктуры вашего приложения, позволяя запускать JavaScript вне веб-браузеров. Но что, если ваше приложение Node.js выйдет из строя в производственной среде? Узнайте, как избежать подобных сценариев, в этой статье.

Что такое PM2 и зачем он вам нужен?

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

Представьте, что ваш веб-сервер Node.js выходит из строя из-за какой-то ошибки во время выполнения. Без использования чего-то вроде PM2 вам придется периодически вручную отслеживать статус вашего приложения и перезапускать его всякий раз, когда оно выходит из строя. PM2 помогает автоматизировать этот процесс и поддерживать ваше приложение в сети 24 часа в сутки, 7 дней в неделю, даже если что-то пойдет не так.

Установка PM2 на серверах Linux

Перед установкой PM2 убедитесь, что на вашем сервере Linux установлены Node.js и NPM, чтобы загрузить пакет PM2 из репозиториев Node Package Manager .

После того, как вы запустите Node.js на своем сервере, установите PM2, выполнив эту команду:

 npm install -g pm2

Выход:

Флаг -g в приведенной выше команде означает Global и позволяет использовать PM2 во всех ваших приложениях Node.js. Вам может потребоваться добавить sudo в начале команды, в зависимости от разрешений, которые есть у вашей учетной записи.

Запуск приложений узла с PM2

После завершения процесса установки перейдите в каталог, в котором находится ваше приложение Node.js, с помощью команды cd . Внутри каталога проекта вы можете выполнить файл JavaScript, используя PM2, с помощью приведенной ниже команды:

 pm2 start filename.js

Например, если точка входа в ваше приложение Node.js находится внутри файла index.js , вы можете запустить этот файл следующим образом:

 pm2 start index.js

Если вам нужно внести какие-либо изменения в ваше приложение, вы можете сделать это с помощью текстового редактора командной строки, чтобы отредактировать код, а затем перезапустить экземпляр приложения PM2 с помощью этой команды:

 pm2 restart filename.js

Вместо этого, чтобы полностью закрыть приложение, используйте эту команду:

 pm2 stop filename.js

Вместо запуска одного файла с PM2 вы также можете выполнять сценарии NPM, присутствующие в файле package.json вашего приложения Node.js. Например, если вы хотите запустить сценарий запуска , структурируйте команду следующим образом:

 pm2 start npm --name <app_name> -- start

Просмотр журналов и статистики

Для отслеживания ошибок, которые могут возникнуть во время выполнения, PM2 предоставляет вам возможность проверять журналы, создаваемые вашим приложением. Вот как вы можете их просмотреть:

 pm2 logs <app_name>

Чтобы отслеживать все процессы, которые в настоящее время выполняются, PM2 поставляется с удобной панелью мониторинга на основе терминала для наблюдения за использованием ЦП и ОЗУ, доступ к которой вы можете получить с помощью этой команды:

 pm2 monit

Чтобы просмотреть остальные сведения и метаданные, такие как версия приложения, количество перезапусков, время безотказной работы, аргументы скрипта и многое другое:

 pm2 show <app_name>

Легкое развертывание приложений Node.js в рабочей среде

Использование диспетчера процессов, такого как PM2, может значительно сократить накладные расходы, связанные с постоянным мониторингом состояния и времени безотказной работы вашего приложения Node.js. Благодаря встроенному балансировщику нагрузки вы можете ожидать повышения производительности и надежности своих услуг.

Говоря о развертывании, вы, скорее всего, использовали бы виртуальную машину Linux для развертывания приложений в облаке. Не знаете, как вы могли это сделать? Вот руководство, которое поможет вам начать работу с виртуальными машинами в Azure.