Node.js + PM2 на VPS: деплой приложений

VDS / VPS серверы · 10.05.2025
Node.js + PM2 на VPS: деплой приложений

Node.js позволяет запускать JavaScript на сервере. PM2 управляет процессами: автоматически перезапускает приложение при сбоях и при старте системы.

Установка Node.js через NodeSource

# Установить Node.js 20 LTS
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# Проверить версии
node --version   # v20.x.x
npm --version    # 10.x.x

Установка PM2

sudo npm install -g pm2

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

# Клонировать проект
git clone https://github.com/your/app.git /var/www/myapp
cd /var/www/myapp
npm install
npm run build   # для Next.js

# Запустить через PM2
pm2 start npm --name "myapp" -- start

# Для Express
pm2 start server.js --name "myapp"

Автозапуск PM2 при перезагрузке

# Сохранить текущие процессы
pm2 save

# Настроить автозапуск
pm2 startup systemd
# Скопировать и выполнить команду, которую выведет PM2

Полезные команды PM2

pm2 list              # список всех процессов
pm2 logs myapp        # логи приложения
pm2 restart myapp     # перезапуск
pm2 stop myapp        # остановка
pm2 monit             # реалтайм мониторинг CPU/RAM

Nginx как reverse proxy

sudo nano /etc/nginx/sites-available/myapp
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
💡 Используйте pm2 monit для отслеживания потребления RAM в реальном времени. Для Node.js приложений рекомендуем VPS с 1–2 ГБ RAM.
← Назад в базу знаний Задать вопрос поддержке