⟵ Все статьи
Читать на:

Настройка Node.js скрипта на VPS с автозапуском через PM2

Настройка Node.js скрипта на VPS с автозапуском через PM2

Запустить Node.js скрипт локально — задача на пять минут. Но когда речь идёт о production-окружении, возникают вопросы: как сделать так, чтобы приложение автоматически стартовало после перезагрузки сервера, перезапускалось при падении и не мешало другим процессам? Именно для этого существует PM2 — менеджер процессов, ставший стандартом де-факто в Node.js-экосистеме. В этой инструкции мы пройдём весь путь: от заказа VPS до стабильно работающего приложения с автозапуском.

Шаг 1. Создаём сервер в панели NodexGo

Прежде чем переходить к настройке, нужен сам сервер. В панели NodexGo нажмите кнопку «Создать сервер». Вы увидите список доступных локаций — рядом с каждой отображается реальный пинг от вашего браузера, что помогает выбрать наиболее близкий дата-центр. Выберите подходящий тариф и в качестве образа операционной системы укажите Ubuntu 24.04 — это актуальная LTS-версия с долгосрочной поддержкой, на которой Node.js работает без лишних сложностей.

Задайте имя сервера, выберите период оплаты — доступны варианты на 1, 3, 6 или 12 месяцев — и подтвердите заказ. Примерно через минуту сервер будет готов: IP-адрес и пароль root появятся в панели и придут на почту. После этого подключайтесь по SSH.

ssh root@IP-адрес-сервера

Разверните Node.js приложение на готовом VPS за минуту

Создать сервер

Шаг 2. Обновляем систему и устанавливаем Node.js

Первым делом обновим пакеты системы, чтобы избежать конфликтов зависимостей и закрыть возможные уязвимости. После обновления установим Node.js через официальный репозиторий NodeSource — это гарантирует актуальную версию платформы, а не устаревший пакет из стандартных репозиториев Ubuntu.

apt update && apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs

После установки проверьте, что Node.js и npm доступны в системе и версии соответствуют ожидаемым. Это простой, но важный шаг — он позволяет убедиться, что инсталляция прошла корректно, прежде чем двигаться дальше.

node -v
npm -v

Шаг 3. Размещаем приложение на сервере

Создайте директорию для проекта и перейдите в неё. Если у вас уже есть готовый код, загрузите его через git clone или скопируйте с помощью scp. Для демонстрации создадим простейший HTTP-сервер вручную, чтобы убедиться в работоспособности всей цепочки до установки PM2.

mkdir -p /var/www/myapp && cd /var/www/myapp

Создайте файл приложения. Приведённый ниже пример запускает HTTP-сервер на порту 3000 и отвечает строкой «Hello from VPS» на любой входящий запрос. Этого достаточно, чтобы проверить, что Node.js работает и PM2 корректно управляет процессом.

cat > app.js << 'EOF'
const http = require('http');
http.createServer((req, res) => {
  res.writeHead(200);
  res.end('Hello from VPS');
}).listen(3000);
EOF

Шаг 4. Устанавливаем PM2 и запускаем приложение

PM2 устанавливается глобально через npm и сразу становится доступен как системная команда. Менеджер процессов умеет следить за состоянием приложения, перезапускать его при падении, вести логи и управлять несколькими процессами одновременно. Установка занимает несколько секунд.

npm install -g pm2

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

pm2 start app.js --name myapp

Чтобы убедиться, что приложение запущено и работает, используйте команду pm2 list — она показывает все активные процессы, их статус, потребление памяти и количество перезапусков. Для просмотра логов в реальном времени используйте pm2 logs.

pm2 list
pm2 logs myapp

Шаг 5. Настраиваем автозапуск при перезагрузке сервера

Ключевая возможность PM2 — интеграция с системой инициализации операционной системы. Команда pm2 startup генерирует и регистрирует systemd-юнит, который запускает PM2 (а вместе с ним и все сохранённые процессы) автоматически при старте системы. Это именно то, что отличает «запущенное приложение» от «надёжно работающего сервиса».

pm2 startup systemd

После выполнения этой команды PM2 выведет в терминал строку с командой, которую нужно выполнить с правами суперпользователя — скопируйте и запустите её. Затем сохраните текущий список процессов, чтобы PM2 знал, какие приложения восстанавливать после перезагрузки.

pm2 save

Теперь можно проверить автозапуск: перезагрузите сервер командой reboot и после повторного подключения выполните pm2 list. Все сохранённые процессы должны быть в статусе online без каких-либо ручных действий с вашей стороны.

reboot

Шаг 6. Полезные команды PM2 для ежедневной работы

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

pm2 restart myapp
pm2 reload myapp
pm2 stop myapp
pm2 delete myapp
pm2 monit

Команда pm2 monit открывает интерактивный дашборд прямо в терминале: вы видите загрузку CPU и памяти по каждому процессу в реальном времени. Это удобно для быстрой диагностики без установки дополнительных инструментов мониторинга.

Что делать, если доступ по SSH потерян

Иногда в процессе настройки можно случайно заблокировать себя — например, изменив правила firewall или допустив ошибку в конфигурации sshd. В панели NodexGo для каждого сервера доступна web-консоль VNC прямо в карточке сервера: она работает независимо от состояния SSH и позволяет войти в систему и исправить проблему. Там же находятся кнопки «Сменить пароль root» и «Переустановить ОС» — на случай если ситуация зашла совсем далеко. Если ваш проект вырос и текущего тарифа не хватает, кнопка «Увеличить мощности» переведёт сервер на старший план с сохранением диска и IP-адреса.

Заключение

Связка Node.js и PM2 на VPS — это надёжная и проверенная схема для запуска production-приложений любого масштаба. PM2 берёт на себя мониторинг, перезапуск при сбоях и интеграцию с systemd, позволяя вам сосредоточиться на разработке, а не на администрировании. Весь описанный путь — от чистого сервера до стабильно работающего сервиса с автозапуском — занимает не более 15 минут. Если вы ищете надёжную платформу для своих Node.js проектов, NodexGo предоставляет VPS с быстрым развёртыванием, удобной панелью управления и всем необходимым для комфортной работы. Арендуйте сервер и запустите своё приложение уже сегодня.

Запустите Node.js приложение на надёжном VPS

Создать сервер

Мы используем файлы cookie: необходимые — для входа в аккаунт и языка интерфейса, аналитические — чтобы понимать, какими страницами пользуются. Сторонних рекламных систем у нас нет. Подробнее