Обратите внимание!
Работа Node.js для веб-сервера OpenLiteSpeed в текущей версии ISPmanager не поддерживается.
Node.js — это среда выполнения JavaScript-приложений, работающая на сервере.
Установка
Чтобы установить Node.js, перейдите в Настройки → Конфигурация ПО → Node.js → кнопка Установить. ISPmanager подключит репозиторий Node.js, установит менеджер пакетов npm и последнюю LTS-версию Node.js. Для управления запущенными приложениями Node.js панель управления установит менеджер процессов pm2.
Обратите внимание!
Для проксирования запросов Node.js требуется веб-сервер Nginx. Если в панели управления не был установлен Nginx, он будет установлен вместе с Node.js.
Настройка пользователя
Чтобы пользователь мог создавать сайты с Node.js, перейдите в Пользователи → выберите пользователя → кнопка Изменить → включите опцию Может использовать Node.js и выберите Версию Node.js по умолчанию → Сохранить. Пользователи, у которых эта возможность включена, отображаются в списке со значком
в столбце Статус. Отключить эту опцию можно, только если у пользователя нет активных сайтов с Node.js.Настройка сайта
Чтобы включить Node.js для сайта, при создании или редактировании WWW-домена:
- В поле Обработчик выберите Node.js.
Укажите Версию Node.js. Версия будет установлена только для пользователя — владельца сайта. Доступна последняя версия Node.js и LTS-версии, начиная с 12.13.0.
Выберите Способ подключения:
- Сокет файл — приложение Node.js будет использовать для работы Unix-сокеты.
Порт — приложение Node.js будет использовать для работы TCP-порт;
Пример настройки
Конфигурационный файл
Приложение Node.js содержит конфигурационный файл package.json. Конфигурационный файл используется для установки зависимостей через npm и управления запуском приложения. Подробнее о формате конфигурационного файла см. в официальной документации Node.js.
{ "name": "doc.test", "version": "1.0.0", "description": "", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js" }, "keywords": [], "author": "", "license": "ISC" }
Чтобы изменить конфигурационный файл, перейдите в Сайты → выберите сайт → кнопка Файлы конфигурации. Чтобы изменить путь к приложению сайта, укажите нужный путь в параметрах main и start.
Обратите внимание!
Не рекомендуем менять файлы конфигурации, если вы полностью не уверены в своих действиях. Перед сохранением конфигурации ISPmanager проверяет только синтаксис файлов, а не корректность настроек.
Чтобы установить пакеты, указанные в конфигурационном файле, перейдите в Сайты → выберите сайт → меню
→ Npm install.Диагностика приложения
Менеджер процессов
Вы можете проверить работу приложения сайта через менеджер процессов pm2:
- Разрешите доступ к shell для пользователя-владельца сайта: Пользователи → выберите пользователя → включите опцию Доступ к shell → Сохранить.
Подключитесь к серверу по ssh и авторизуйтесь под учётной записью владельца сайта:
su <username>
Выведите список приложений:
pm2 list
Пример ответа| id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────┼─────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ example.com │ default │ N/A │ fork │ 317423 │ 13m │ 2 │ online │ 0% │ 60.6mb │ www-root │ disabled │ │ 1 │ example2.com │ default │ N/A │ fork │ 316830 │ 19m │ 0 │ online │ 0% │ 61.7mb │ www-root │ disabled |
Запросите информацию о нужном приложении:
pm2 info <name>
или
pm2 info <id>
Пример ответаDescribing process with id 0 - name example.com | status │ online │ │ name │ example.com │ │ namespace │ default │ │ version │ N/A │ │ restarts │ 2 │ │ uptime │ 15m │ │ script path │ /var/www/www-root/data/.nvm/versions/node/v18.1.0/bin/npm │ │ script args │ start │ │ error log path │ /var/www/www-root/data/.pm2/logs/example.com-error.log │ │ out log path │ /var/www/www-root/data/.pm2/logs/example.com-out.log │ │ pid path │ /var/www/www-root/data/.pm2/pids/example.com-0.pid │ │ interpreter │ node │ │ interpreter args │ N/A │ │ script id │ 0 │ │ exec cwd │ /var/www/www-root/data/www/example.com │ │ exec mode │ fork_mode │ │ node.js version │ 18.1.0 │ │ node env │ N/A │ │ watch & reload │ ✘ │ │ unstable restarts │ 0 │ │ created at │ 2022-05-11T04:25:03.051Z |
Служебные каталоги
При работе с сайтами с Node.js в домашней директории пользователя создаются служебные каталоги используемых утилит:
- /var/www/www-root/data/.npm/ — данные пакетного менеджера Node.js;
- /var/www/www-root/data/.nvm/ — установленные версии Node.js;
- /var/www/www-root/data/.pm2/ — данные менеджера процессов pm2.
Эти директории нужны для корректной работы Node.js. Если их удалить, директории будут пересозданы при следующем редактировании сайта, но часть информации может быть утеряна.
Управление сайтом через shell-клиент
Владелец сайта может выполнять команды Node.js и npm через shell-клиент. Эта возможность доступна, если в настройках пользователя включена опция Доступ к shell. Чтобы открыть shell-клиент, перейдите в Cайты → выберите сайт → меню
При запуске shell-клиента панель управления автоматически:
- откроет домашнюю директорию сайта;
- добавит пути к Node.js для выбранного сайта в переменную PATH.
Чтобы закрыть shell-клиент, нажмите
.Интерфейс shell-клиента
Удаление
Чтобы удалить Node.js, перейдите в Конфигурация ПО → Node.js → Отключить. Панель управления удалит Node.js и связанное ПО — npm, pm2.
Обратите внимание!
Удаление невозможно, если в панели управления есть сайты с Node.js.
Особенности работы
- При выборе обработчика Node.js установка CMS или конструктора сайта недоступна.
- Если содержимое сайта с Node.js изменилось, нужно перезапустить приложение сайта для применения изменений: Сайты → выберите сайт → меню → Перезапустить.
- При восстановлении сайта с Node.js из резервной копии ISPmanager попытается использовать сохранённые настройки порта или сокета. Если порт или сокет занят, для сайта будет выделен новый порт или сокет.