Рекомендуемый набор для рабочего (production) запуска Бипиум

Односерверная архитектура, работающая по HTTPS с дополнительным веб-сервером (балансировщиком) nginx.

Односерверная архитектура, работающая по HTTPS с дополнительным веб-сервером (балансировщиком) nginx

Описание:

В данной схеме запросы сначала поступают на балансировщик через защищенный канал HTTPS, расшифровываются и перенаправляются нужному приложению по HTTP. Поэтому в настройках балансировщика должны быть прописаны соответствующие правила, перенаправляющие запросы нужному приложению.

Данный вариант разворачивания мы сами используем при установке на серверах клиентов, а также рекомендуем тем, кто выполняет установку самостоятельно.

В иллюстрации схемы все 3 приложения и база данных работают на одном сервере, но мы всё таки рекомендуем вынести базу данных в отдельный сервер, так как это самая нагруженная часть приложения.

Требуемое ПО:

  • Дистрибутив Bpium

  • PostgreSQL

  • Redis

  • Nginx в качестве веб-сервера балансировщика

  • Зарегистрированное доменное имя

  • Сертификат безопасности выданный для зарегистрированного домена
    Узнать о том, как получить сертификат для Вашего домена можно в этой статье

Как настроить:

  1. Установить PostgreSQL и создать пустую базу данных
    • Версия не ранее 10 (допустимы 11+, 12+, 13+, 14+)
    • Сервер PostgreSQL должен быть установлен на том же сервере, что и Bpium, или на другом отдельном сервере, но в пределах локальной сети (если на удаленном сервере, то могут будут большие задержки)
    • Сервер PostgreSQL должен работать как служба (в Windows)

  2. Установить Redis
    • Версия: последняя
    • Redis должен работать как служба (в Windows)
    • Ссылка сборки для Windows: https://github.com/MicrosoftArchive/redis/releases

  3. Установить Nginx
    • Версия последняя

  4. Собрать конфигурационный файл для Nginx
    Мы используем следующий конфигурационный файл:

    worker_processes 1; events { worker_connections 1024; } http { client_max_body_size 100M; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80 default_server; server_name _; return 307 https://$host$request_uri; } server { listen 443 ssl; # необходимо указать зарегистрированный домен # в примере ниже domen.ru server_name domen.ru; # необходимо указать путь к файлу сертификата с расширением # .crt или .pem (в примере ниже директория C:/bpium/domen_ru.crt ssl_certificate C:/bpium/domen_ru.crt; # необходимо указать путь к ключу сертификата с расширением # .key или .pem (в примере ниже директория C:/bpium/domen_ru.key ssl_certificate_key C:/bpium/domen_ru.key; location /storage { # необходимо указать порт, который слушает Bpium-S3 # в примере ниже данным портом является 2020 proxy_pass http://localhost:2020; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location / { # необходимо указать порт, который слушает сервер Bpium # в примере ниже данным портом является 3000 proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } }
  5. Собрать конфигурационный файл config.env для Bpium.
    Необходимые минимальные для данной схемы параметры и их описание:

    Параметр

    Описание

    Значение для схемы

    DB_CONNECTION_STRING

    строка подключения к базе данных Бипиума. Формат: postgres://логин:пароль@адрес:порт/бд

    HOST

    домен сервера для доступа из внешних ресурсов

    PORT_HTTP

    порт веб-сервера Bpium для входящих HTTP запросов

    S3_HOST

    домен сервера хранилища файлов для доступа из внешних ресурсов

    S3_PORT

    порт хранилища файлов S3 по которому обращается Bpium Server

    S3_HTTPS

    Использовать протокол HTTPS

    BPM_HOST

    публичный/локальный IP-адрес или домен сервера исполнения процессов

    BPM_PORT

    порт сервера исполнения процессов BPM

    В данной схеме в параметре PORT_HTTP 80-ый и 443-ий порты указывать нельзя, так как этот порт будет открыт nginx’ом. Рекомендуем использовать любой другой порт, например: 3000

  6. Собрать конфигурационный файл config.env для Bpium-S3.
    Приложение Bpium-S3 в данной схеме требует отдельного файла config.env, поэтому само приложение и конфигурационный файл должны быть в отдельной директории.

    Параметр

    Описание

    Значение для схемы

    S3_HOST

    домен сервера хранилища файлов

    S3_PORT

    порт, на котором будет работать сервер хранилища файлов

  7. Запустить исполняемый файл bpium-setup. Данный исполняемый файл подготовит базу данных для работы приложения: при пустой базе данных будут созданы необходимые для запуска таблицы, созданы системные данные; если эти данные уже есть в базе, при необходимости будет проведена миграция.

  8. Запустить nginx.

  9. Запустить приложения Бипиума. Есть 2 варианта запуска:\

    1. Просто запустить исполняемые файлы приложений (bpium, bpium-s3, bpium-bpm)

    2. Зарегистрировать приложения в системе в качестве служб/демонов.
      Для проверки работы рекомендуем воспользоваться сначала первым вариантом. После проверки уже зарегистрировать приложения в системе в качестве служб/демонов
      После проверки уже зарегистрировать приложения в системе в качестве служб/демонов

  10. Проверка работы:

    1. Проверка основного Bpium-сервера (API): запустите браузер и в адресной строке наберите домен, который был указан в основном config.env файле в параметре HOST. Если откроется страница авторизации, значит Bpium-сервер работает. Стандартный логин и пароль для авторизации: admin/admin
      2) Проверка сервера хранилища файлов (Bpium-S3). Создайте новый каталог с одним полем типа Файл, создайте новую запись в данном каталоге и попробуйте загрузить туда любой небольшой файл. Если рядом с файлом не появился восклицательный знак, значит сервер хранилища файлов работает корректно.

    2. Проверка сервера исполнения процессов (Bpium-BPM).
      • Перейдите в каталог “Сценарии”, создайте новую запись с любым сценарием(можно даже простой сценарий с компонентами Начало процесса и Конец процесса).
      • Перейдите в каталог “Внешние запросы”, создайте новую запись: в поле URL укажите значение test, в поле Сценарий выберите созданный ранее сценарий.
      • В адресной строке наберите следующую строку:
      адрес_сервера/api/webrequest/test где адрес_сервера - это домен сервера Bpium (параметр HOST из файла config.env).
      • Перейдите в каталог “Процессы” и проверьте появилась ли запись. Если запись появилась, то проверьте, что результат в данной записи “Завершен” - в этом случае можно сделать вывод, что сервер исполнения процессов работает корректно.