Деплой на VPS: pm2/systemd/nginx

Деплой приложения на VPS: настройка процесса через pm2 или systemd, nginx как reverse proxy и HTTPS. Пошаговая инструкция вывести проект в интернет своими руками.

Автор — Дмитрий Тыльный, Senior DevOps · 28 мая 2026 · 10 мин
Деплой на VPS: pm2/systemd/nginx

Коротко. Чтобы проект стал доступен по адресу в интернете, нужен сервер (VPS), процесс-менеджер (pm2 или systemd), чтобы приложение не падало, nginx как reverse proxy и HTTPS через бесплатный сертификат. Это классический навык, который сильно усиливает портфолио.

Что такое VPS

VPS — виртуальный сервер, который вы арендуете и настраиваете сами. На нём вы разворачиваете приложение, базу и веб-сервер. Доступ — по SSH.

Держим процесс живым

Если просто запустить приложение в терминале, оно умрёт при закрытии сессии. Нужен процесс-менеджер:

  • pm2 (для Node.js): pm2 start server.js, автозапуск после перезагрузки.
  • systemd (универсально): unit-файл, который стартует и перезапускает приложение при падении.

Nginx как reverse proxy

Nginx принимает запросы на 80/443 и перенаправляет их вашему приложению (например, на порт 3000):

server {
  listen 80;
  server_name example.com;
  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
  }
}

Это скрывает внутренний порт, позволяет раздавать статику и добавить HTTPS.

HTTPS бесплатно

Сертификат Let's Encrypt выдаётся бесплатно; утилита certbot настраивает его для nginx автоматически и продлевает. HTTPS сегодня обязателен: без него браузеры помечают сайт небезопасным.

Чеклист деплоя

  1. Арендовать VPS, зайти по SSH, обновить систему.
  2. Установить рантайм (Node/Python), клонировать проект.
  3. Поднять приложение под pm2/systemd.
  4. Настроить nginx как reverse proxy.
  5. Выпустить HTTPS через certbot.
  6. Закрыть лишние порты (firewall), настроить деплой из CI.

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

VPS или облачный хостинг?
Для обучения VPS даёт понимание «как всё устроено». Платформы (Vercel и т.п.) проще, но скрывают детали. Для портфолио полезно уметь VPS.

pm2 или systemd?
pm2 проще для Node-проектов; systemd универсален и есть в любой Linux-системе. Достаточно освоить один.

Нужен ли Docker для деплоя?
Не обязателен, но упрощает переносимость. См. Docker для новичка.

Полезно? Подпишитесь на Telegram

Вступить в канал