Если PM2 приложение не работает, сайт или API может отдавать 502, не открываться по порту или постоянно перезапускаться в фоне.
PM2 часто используют для Node.js-приложений, ботов, API и frontend SSR. Когда процесс падает, пользователь видит не красивую ошибку, а полностью недоступный сервис.
Коротко: нужно проверить статус процесса, логи PM2, env-переменные, порт и проксирование через nginx.Почему это ломается
PM2-приложение падает из-за отсутствующих переменных окружения, неверной версии Node.js, занятого порта, ошибки сборки, неправильной рабочей директории, отсутствующего ecosystem.config.js или ненастроенного pm2 startup после перезагрузки.
Что проверяю в первую очередь
- что показывает pm2 status
- какая ошибка в pm2 logs
- на каком порту должно слушать приложение
- есть ли нужные env-переменные
- настроен ли nginx proxy и pm2 startup
Как я это чиню
Я проверяю приложение отдельно от nginx: сначала локальный порт и процесс PM2, затем проксирование и внешний домен.
- исправляю ecosystem config и рабочую директорию
- добавляю нужные env-переменные
- настраиваю правильную версию Node.js
- чиню порт и nginx proxy_pass
- закрепляю автозапуск PM2 после reboot
Что подготовить перед обращением
- домен или порт приложения
- pm2 status и logs
- ecosystem config, если есть
- доступ к серверу
- как приложение запускается локально
Как выглядит нормальный результат
PM2 должен держать процесс онлайн, перезапускать его при сбое, сохранять логи и поднимать приложение после перезагрузки сервера.
Чего лучше не делать
Не запускайте приложение одновременно через npm start, pm2 и systemd без схемы. Несколько способов запуска могут конфликтовать за порт.
Вопросы и ответы
Почему pm2 status показывает online, а сайт не открывается?
Приложение может слушать другой порт, падать на запросе или nginx может проксировать не туда.
Что делать с endless restart?
Смотреть pm2 logs: обычно там ошибка кода, env или подключения к базе.
Нужен ли pm2 save?
Да, после настройки процессов стоит сохранить список, чтобы он восстановился после перезагрузки.
Можно ли использовать PM2 для бота?
Да, если бот написан на Node.js и должен работать постоянно.
Нужна похожая задача?
Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку, скриншот или лог ошибки, и я подскажу, с чего безопасно начать исправление.
Итог
PM2 нужно настраивать как управляемый сервис: процесс, env, порт, логи, nginx и автозапуск должны быть согласованы.