Node.js на VPS: деплой с PM2 и Nginx — иллюстрация к статье Storm Cloud Blog, категория Разработка
Node.js на VPS: деплой с PM2 и Nginx — иллюстрация к статье Storm Cloud Blog, категория Разработка
Разработка·1 мин··

Node.js на VPS: деплой с PM2 и Nginx

Как запустить Node.js приложение на VPS: PM2 для автозапуска, кластеризация, логи и Nginx reverse proxy.

Node.js на VPS без process manager падает при закрытии SSH. PM2 решает это за одну команду.


Установка

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install nodejs -y
sudo npm install -g pm2

Запуск приложения

cd /var/www/myapp
npm ci --production
pm2 start index.js --name myapp
pm2 save
pm2 startup

Кластер на все ядра:

pm2 start index.js -i max --name myapp

Nginx reverse proxy

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
}

Мониторинг

pm2 monit
pm2 logs myapp
pm2 status

Итог

PM2 + Nginx — стандартный стек Node.js на VPS. Не забудьте SSL через Let’s Encrypt.

VPS для Node — StormNet Cloud.

Частые вопросы

Зачем PM2, если есть systemd?

PM2 удобен для Node.js: кластеризация, автоперезапуск при падении, логи и zero-downtime reload. Systemd тоже работает, но PM2 проще для JS.

Сколько RAM нужно для Node.js на VPS?

Простой API — от 512 МБ–1 ГБ. С PM2 cluster mode закладывайте RAM с запасом под каждый воркер.