BrainyCP
Панель управления веб-инфраструктурой RAMBA ART
BrainyCP — панель управления Linux-сервером и веб-хостингом, используемая в инфраструктуре RAMBA ART для управления веб-сервисами, доменами, SSL-сертификатами и reverse proxy.
В инфраструктуре RAMBA ART BrainyCP выполняет роль внешней точки входа для ряда внутренних сервисов, включая RAMBA Wiki.
Обзор
BrainyCP позволяет выполнять большую часть повседневных операций с веб-сервером через графический интерфейс, сохраняя возможность ручного администрирования через SSH.
Основные возможности:
- управление доменами и сайтами;
- Nginx и Apache;
- PHP и PHP-FPM;
- MariaDB / MySQL;
- SSL-сертификаты Let's Encrypt;
- FTP;
- почтовые службы;
- резервное копирование;
- firewall;
- управление пользователями;
- reverse proxy;
- просмотр журналов и диагностика веб-сервисов.
Официальный сайт: brainycp.com
BrainyCP в инфраструктуре RAMBA ART
В нашей инфраструктуре BrainyCP используется не только как обычная hosting-панель.
Он также выполняет функцию reverse proxy между Интернетом и внутренними сервисами.
INTERNET
│
│ HTTPS :443
▼
┌─────────────────┐
│ BrainyCP │
│ Reverse Proxy │
└────────┬────────┘
│
┌──────────────┼──────────────┐
│ │ │
▼ ▼ ▼
RAMBA Wiki RAMBA Matrix ownCloud
│ │ │
▼ ▼ ▼
MediaWiki Dendrite ownCloudТакой подход позволяет держать приложения на отдельных виртуальных машинах и LXC-контейнерах, а управление HTTPS выполнять централизованно.
Пример: RAMBA Wiki
Для Wiki используется схема:
Пользователь
│
│ HTTPS
▼
wiki.ramba-art.ru
│
▼
BrainyCP / Nginx
│
│ HTTP
▼
192.168.1.79:80
│
▼
MediaWikiТаким образом, TLS завершается на BrainyCP, после чего запрос передаётся внутреннему серверу MediaWiki.
Системные требования
Для отдельного сервера BrainyCP рекомендуется использовать чистую установку Linux.
| Параметр | Минимально | Рекомендуется |
|---|---|---|
| ОС | Поддерживаемая версия Linux | Актуальная стабильная версия |
| RAM | 2 ГБ | 4 ГБ и более |
| Диск | 20 ГБ | SSD, 40+ ГБ |
| Сеть | Интернет | Статический IP |
| Доступ | root | SSH + root/sudo |
Перед установкой необходимо проверить актуальный список поддерживаемых ОС в документации BrainyCP.
Установка
Подключаемся к серверу по SSH.
Обновляем систему:
apt update
apt upgrade -yПосле этого запускаем официальный установщик BrainyCP:
curl -s https://core.brainycp.com/install.sh | bashПроцесс установки может занять некоторое время.
После завершения установщик покажет данные для доступа к панели.
Первый вход
Панель управления доступна через HTTPS на управляющем порту BrainyCP.
Пример:
https://SERVER_IP:8000После первого входа рекомендуется:
- изменить пароль администратора;
- проверить имя сервера;
- настроить часовой пояс;
- проверить сетевые параметры;
- установить обновления;
- настроить firewall;
- проверить доступность панели извне.
Домены и сайты
Создание нового сайта выполняется через управление доменами BrainyCP.
Обычно необходимо указать:
- доменное имя;
- владельца;
- каталог сайта;
- версию PHP;
- используемый веб-сервер;
- параметры SSL.
После создания домена BrainyCP автоматически формирует необходимую конфигурацию веб-сервера.
Веб-сервер
BrainyCP поддерживает различные варианты конфигурации.
| Режим | Назначение |
|---|---|
| Nginx | Высокопроизводительная обработка HTTP/HTTPS и reverse proxy |
| Apache | Совместимость с приложениями, использующими Apache и .htaccess |
| Nginx + Apache | Nginx работает фронтендом, Apache обслуживает backend |
Для инфраструктуры RAMBA ART особенно важен Nginx, поскольку он используется в качестве reverse proxy.
Reverse Proxy
Reverse proxy позволяет принимать запросы на публичном домене и перенаправлять их на внутренний сервер.
Например:
location / {
proxy_pass http://192.168.1.79:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}В данном примере:
wiki.ramba-art.ru
│
▼
BrainyCP
│
▼
192.168.1.79:80При изменении внутреннего IP сервиса достаточно изменить upstream на BrainyCP — публичный адрес сайта остаётся прежним.
Проверка конфигурации
После изменения Nginx обязательно проверяем конфигурацию:
nginx -tПри успешной проверке:
syntax is ok
test is successfulПосле этого применяем изменения:
systemctl reload nginxSSL / Let's Encrypt
BrainyCP позволяет выпускать сертификаты Let's Encrypt для добавленных доменов.
Перед выпуском сертификата необходимо убедиться, что:
- DNS-запись домена указывает на сервер;
- порты 80 и 443 доступны;
- домен добавлен в BrainyCP;
- веб-сервер корректно отвечает на запросы.
После выпуска сертификата рекомендуется проверить автоматическое продление.
Для reverse proxy схема выглядит следующим образом:
CLIENT
│
│ HTTPS
▼
BrainyCP
│
│ TLS termination
▼
HTTP / HTTPS backendPHP
Для сайтов, размещённых непосредственно на BrainyCP, панель позволяет управлять версиями PHP и параметрами PHP-FPM.
При диагностике полезно проверить установленные службы:
systemctl --type=service | grep -i phpКонкретное имя PHP-FPM зависит от установленной версии PHP.
Например:
systemctl status php8.2-fpmБазы данных
BrainyCP предоставляет управление MariaDB/MySQL и позволяет создавать:
- базы данных;
- пользователей;
- пароли;
- права доступа.
Для графического администрирования может использоваться phpMyAdmin.
Для production-систем рекомендуется:
- создавать отдельного пользователя для каждого приложения;
- не использовать root-пользователя БД в приложениях;
- использовать уникальные пароли;
- регулярно выполнять резервное копирование.
MediaWiki за BrainyCP
RAMBA Wiki работает на отдельном сервере MediaWiki, а BrainyCP используется как внешний reverse proxy.
Это отличается от установки MediaWiki непосредственно внутрь hosting-окружения BrainyCP.
Архитектура
┌──────────────────────────────┐
│ Internet │
└──────────────┬───────────────┘
│
│ HTTPS
▼
┌──────────────────────────────┐
│ BrainyCP │
│ Nginx │
│ SSL termination │
└──────────────┬───────────────┘
│
│ HTTP
▼
┌──────────────────────────────┐
│ MediaWiki LXC │
│ │
│ MediaWiki + Apache + PHP │
│ MariaDB │
└──────────────────────────────┘Преимущество такой схемы — MediaWiki можно обновлять, переносить или восстанавливать независимо от reverse proxy.
X-Forwarded-Proto
При завершении HTTPS на reverse proxy backend должен понимать, что исходное соединение пользователя было защищённым.
Nginx передаёт:
proxy_set_header X-Forwarded-Proto $scheme;На стороне MediaWiki это необходимо учитывать в конфигурации, иначе могут возникать:
- неправильные HTTP-ссылки;
- циклические redirect;
- проблемы с cookies;
- ошибки определения HTTPS.
Диагностика
Nginx
Проверка службы:
systemctl status nginxПроверка конфигурации:
nginx -tПерезагрузка конфигурации:
systemctl reload nginxApache
В зависимости от системы:
systemctl status apache2или:
systemctl status httpdПроверка HTTP
Для проверки сайта непосредственно из консоли:
curl -I https://example.ru/Для подробной диагностики:
curl -Iv https://example.ru/Проверка backend
Reverse proxy можно исключить из цепочки и проверить backend непосредственно:
curl -I http://BACKEND_IP/Это позволяет быстро определить, где находится проблема:
Internet
│
▼
DNS
│
▼
BrainyCP / Nginx
│
▼
Backend
│
▼
ApplicationРезервное копирование
Резервные копии рекомендуется хранить вне сервера BrainyCP.
Необходимо учитывать как минимум:
- конфигурации веб-сервера;
- SSL-сертификаты;
- базы данных;
- файлы сайтов;
- конфигурацию BrainyCP.
Если BrainyCP работает в виртуальной машине или LXC-контейнере, желательно дополнительно использовать резервное копирование на уровне гипервизора.
Безопасность
Основные рекомендации:
- не публиковать управляющую панель без необходимости;
- использовать сложный пароль администратора;
- ограничить SSH;
- своевременно устанавливать обновления;
- использовать HTTPS;
- контролировать открытые порты;
- регулярно проверять журналы Nginx;
- хранить резервные копии отдельно;
- не использовать root для работы веб-приложений;
- перед изменением production-конфигурации сохранять рабочую версию.
Полезные команды
| Задача | Команда |
|---|---|
| Проверить Nginx | nginx -t
|
| Статус Nginx | systemctl status nginx
|
| Применить конфигурацию | systemctl reload nginx
|
| Перезапустить Nginx | systemctl restart nginx
|
| Проверить сайт | curl -I https://example.ru/
|
| Подробный HTTPS-тест | curl -Iv https://example.ru/
|
| Проверить порты | ss -tulpn
|
| Журнал Nginx | journalctl -u nginx
|
Заключение
BrainyCP удобно использовать не только как классическую hosting-панель, но и как центральный узел управления веб-инфраструктурой.
В архитектуре RAMBA ART особенно полезна связка:
DNS
│
▼
BrainyCP
│
├── SSL
├── Nginx
├── Reverse Proxy
│
▼
Внутренние сервисы RAMBA ARTОна позволяет отделить публичный веб-уровень от серверов приложений и независимо обслуживать MediaWiki, Matrix, облачные и другие сервисы.