Настройка и работа PM2 для Frontend
PM2 используется для запуска Frontend-сервера Angular SSR в рабочем режиме (Production).
В отличие от обычного статического сайта, Frontend iEXExchanger запускает Node.js-приложение, которое отвечает за генерацию HTML-страниц, обработку маршрутов, мультиязычность, SEO и взаимодействие с Backend.
PM2 позволяет:
запускать Frontend как фоновый процесс;
автоматически перезапускать сервер при сбоях;
сохранять логи работы;
автоматически запускать Frontend после перезагрузки сервера;
управлять запуском, остановкой и перезапуском приложения.
По умолчанию Frontend работает на локальном порту:
127.0.0.1:4000Nginx принимает запросы пользователей и передаёт их в Angular SSR:
Перед началом
Перед настройкой убедитесь, что:
Frontend уже установлен;
выполнена сборка проекта;
настроен Nginx;
установлен Node.js;
установлен PM2;
существует файл
.env;существует папка
dist/exchanger.
Где находится PM2-конфигурация
Файл конфигурации PM2 находится в корне Frontend-проекта:
Структура проекта должна выглядеть примерно так:
Создание папки логов
Перед первым запуском создайте папку для логов:
В ней будут храниться журналы работы Frontend.
Рекомендуемая конфигурация PM2
Для большинства проектов рекомендуется использовать следующую конфигурацию:
Данная конфигурация подходит для большинства серверов и рекомендуется использовать её без изменений.
Описание основных параметров
Почему рекомендуется использовать fork
Для большинства проектов рекомендуется:
Такой режим:
проще в настройке;
проще диагностируется;
использует меньше памяти;
отлично подходит для большинства обменных пунктов.
Начинать работу рекомендуется именно с него.
Когда использовать cluster
Режим cluster можно использовать только при высокой нагрузке.
Например:
Использовать cluster рекомендуется, если:
сервер имеет несколько CPU;
достаточно оперативной памяти;
сайт получает большое количество запросов;
Frontend уже стабильно работает в режиме
fork.
Не рекомендуется сразу использовать:
Если сервер имеет 8 ядер, PM2 создаст 8 процессов, что значительно увеличит потребление памяти.
Запуск Frontend
Перейдите в каталог проекта:
Запустите Frontend:
Проверьте статус:
Если всё настроено правильно, процесс будет иметь статус:
После этого сохраните конфигурацию:
Автоматический запуск после перезагрузки
Чтобы Frontend автоматически запускался после перезагрузки сервера:
PM2 покажет команду, которую необходимо выполнить от имени root.
После выполнения снова сохраните процессы:
Проверить можно командой:
Перезапуск Frontend
После:
обновления Frontend;
изменения
.env;изменения PM2-конфигурации;
выполните:
Параметр:
заставляет PM2 перечитать файл .env.
Если изменился только код приложения:
Остановка Frontend
Остановить:
Запустить снова:
Удалить процесс:
После повторного запуска выполните:
Просмотр логов
Просмотр логов в реальном времени:
Последние строки:
Также логи находятся в папке:
Очистка логов
Очистить логи PM2:
Проверить размер папки:
Проверка работы Frontend
Проверьте локальный порт:
Если сервер отвечает, Frontend успешно работает.
Если ответа нет:
Проверка файла .env
Перед запуском или перезапуском Frontend рекомендуется проверить основные параметры файла .env.
Особое внимание обратите на:
Если используется несколько доменов или www, добавьте их через запятую.
Также проверьте поддерживаемые языки:
И язык по умолчанию:
После изменения любого из этих параметров необходимо выполнить:
Связь PM2 и Nginx
PM2 запускает Angular SSR на:
Nginx принимает запросы пользователей и передаёт их Frontend.
Если PM2 остановлен, Nginx не сможет получить ответ и пользователь увидит ошибку:
После обновления Frontend
После загрузки новой версии Frontend рекомендуется:
Проверить наличие новой сборки:
Проверить файл
.env.Перезапустить Frontend:
Проверить статус:
Проверить работу сайта:
Типовые проблемы
Frontend работает, но сайт не открывается
Проверьте:
настройки Nginx;
порт
4000;совпадает ли порт в
.env, PM2 и Nginx.
PM2 не использует .env
Убедитесь, что:
ecosystem.config.cjsнаходится в корне проекта;используется:
Frontend перезапущен командой:
Краткий чек-лист
Создайте папку логов.
Проверьте
.env.Проверьте
ecosystem.config.cjs.Запустите Frontend.
Проверьте статус.
Сохраните процессы.
Настройте автозапуск.
Проверьте локальный порт.
Проверьте работу сайта.
Рекомендуемая настройка
Для большинства обменных пунктов рекомендуется использовать:
Переходить на режим cluster имеет смысл только после появления высокой нагрузки и при наличии достаточного запаса процессорных ресурсов и оперативной памяти.
Последнее обновление
Это было полезно?