502 Bad Gateway

Ошибка 502 Bad Gateway означает, что nginx не получил ответа от клиентской части: процесс Node.js не запущен или упал. Чаще всего это случается после установки обновления или изменения настроек — в момент, когда фронт пересобирается, и сборке не хватило оперативной памяти.

Админка при этом обычно работает: она обслуживается Битриксом и от Node.js не зависит.

Посмотреть, что происходит

Подключитесь к серверу по SSH. Если открылось меню BitrixVM, в строке Enter your choice введите 0 и нажмите Enter — попадёте в консоль.

Переключитесь на пользователя bitrix:

su bitrix

Откройте монитор процессов:

pm2 monit

Слева — список процессов, справа — их вывод. Откройте сайт в браузере, дождитесь ошибки и вернитесь в консоль: в правой части появится причина.

Процесса нет в списке

Значит клиентская часть не запущена. Выйдите из монитора по Ctrl + C и запустите её вручную, чтобы увидеть ошибки:

cd /home/bitrix/www/frontend
npm run start

Если в ответ появилось Listening: http://localhost:3000/ — всё в порядке. Проверьте сайт в браузере, вернитесь в консоль, нажмите Ctrl + C и запустите процессы под менеджером:

pm2 restart all

Ошибка Permission denied

Полный текст выглядит примерно так:

sh: /home/bitrix/www/frontend/node_modules/.bin/nuxt: Permission denied

Причина:

Зависимости установились неполностью или с неверными правами — обычно после прерванного обновления.

Решение:

Переустановите зависимости:

cd /home/bitrix/www/frontend
rm -rf ./node_modules
npm i

Установка идёт несколько минут. Предупреждения (WARNING) — это нормально, ошибок (ERROR) быть не должно. Затем запустите сайт, как описано выше.

Ошибка о нехватке памяти

Если в выводе есть JavaScript heap out of memory или процесс молча падает на сборке, серверу не хватило оперативной памяти.

Решение:

Сборку фронта нужно проводить, когда на сервере есть свободная память: остановите тяжёлые задания обмена с 1С и повторите. Если это повторяется при каждом обновлении, памяти на сервере мало для вашего каталога — напишите в техподдержку, мы подскажем требуемый объём.

Проверка

Откройте сайт: страницы должны открываться. Затем убедитесь, что процесс поднят под PM2, иначе после перезагрузки сервера сайт снова отдаст 502:

pm2 list

В списке должен быть процесс со статусом online.