ISPmanager 6 вміє не тільки роздавати статику і PHP-сайти, а й запускати застосунки на Node.js і Python як окремі веб-сервіси зі своїм доменом. Розберемо, як створити такий застосунок, обрати версію рантайму і налаштувати проксування через веб-сервер.
Чим застосунок відрізняється від звичайного сайту
Звичайний сайт в ISPmanager 6 — це набір файлів, які обробляє PHP-FPM або віддає веб-сервер напряму. Node.js і Python-застосунок — це окремий процес, який слухає свій локальний порт, а Nginx проксує до нього зовнішні запити за доменом. Панель сама піднімає і перезапускає процес через systemd-юніт.
Створення застосунку Node.js
Відкрийте «WWW-домени» → «Створити застосунок», оберіть тип Node.js, вкажіть домен і шлях до точки входу, наприклад app.js у корені каталогу сайту. ISPmanager 6 запропонує перелік встановлених версій Node.js, а версію, якої бракує, можна додати через менеджер версій рантайму.
npm install --production
npm run build
Після встановлення залежностей панель запускає процес автоматично. Перевірити, що застосунок слухає потрібний порт, можна з консолі:
ss -tlnp | grep node
Створення застосунку Python
Для Python-застосунків ISPmanager 6 підтримує WSGI-сумісні фреймворки: Django, Flask, FastAPI через uvicorn. При створенні вкажіть версію Python, шлях до віртуального середовища і модуль з точкою входу, наприклад app:application для Flask.
python3 -m venv /var/www/httpd-cts/site_py/venv
source /var/www/httpd-cts/site_py/venv/bin/activate
pip install -r requirements.txt
Панель створює systemd-юніт, який запускає застосунок через gunicorn або uvicorn у вказаному віртуальному середовищі і перезапускає процес при падінні.
Проксування через Nginx
| Параметр | Значення за замовчуванням | Де змінювати |
|---|---|---|
| Локальний порт застосунку | Призначається автоматично | Налаштування застосунку в панелі |
| Таймаут проксування | 60 секунд | Шаблон Nginx для застосунків |
| Максимальний розмір запиту | 10 МБ | client_max_body_size у шаблоні |
Якщо сайт використовує звʼязку Nginx і Apache, застосунок все одно проксується напряму через Nginx, минаючи Apache — це швидше для API і WebSocket-зʼєднань. Подробиці про звʼязку веб-серверів є у статті про Nginx і Apache в ISPmanager 6.
Логи і перезапуск застосунку
Логи Node.js і Python-застосунків пишуться в окремі файли в каталозі сайту і дублюються в журнал systemd. Переглянути останні записи і статус процесу можна так:
journalctl -u app-site_ru -n 100
systemctl restart app-site_ru
Якщо застосунок постійно падає після старту, спершу перевірте помилки імпорту залежностей у лозі — це найчастіша причина. Загальний підхід до розбору помилок панелі описано в статті про логи та діагностику ISPmanager 6.
Підсумок: перелік для запуску застосунку
- Обрати потрібну версію Node.js чи Python до створення застосунку
- Вказати правильний шлях до точки входу і віртуального середовища
- Встановити залежності через npm install чи pip install перед першим запуском
- Перевірити, що процес слухає порт і проксується через Nginx
- Налаштувати перегляд логів systemd для швидкої діагностики збоїв