Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Вынос сервиса Processing для Astra Linux

Обновлено: 24.12.25

0. Схема

0.1. Описание

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

1. Выполните установку Корпоративного портала 2024

Важно

При включенной службе firewalld необходимо выполнить настройку для http и https.

# Добавляем службы:

sudo firewall-cmd --permanent --zone=public --add-service=http

sudo firewall-cmd --permanent --zone=public --add-service=https

  

# Перезапускаем службу firewalld:

sudo firewall-cmd --reload

  

# Проверяем правила для зоны public:

sudo firewall-cmd --zone=public --list-all

Установить согласно инструкции ↗.

2. На ВМ с ролью Processing

2.1. Установите ключ репозитория

sudo wget -O - https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null

2.2. Добавьте репозиторий

sudo wget https://packages.microsoft.com/config/debian/10/prod.list -O /etc/apt/sources.list.d/microsoft-prod.list && sudo apt update

2.3. Установите dotnet

sudo wget https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/d/dotnet-host/dotnet-host-7.0.3-x64.deb && sudo apt -y install ./dotnet-host*.deb && sudo rm ./dotnet-host*.deb

2.4. Установите остальные пакеты

Для версии 14752 и выше выполните установку следующих пакетов:

sudo apt install supervisor aspnetcore-runtime-6.0 aspnetcore-targeting-pack-6.0 autoconf automake autotools-dev binutils binutils-common binutils-x86-64-linux-gnu dotnet-apphost-pack-6.0 dotnet-hostfxr-6.0 dotnet-runtime-6.0 dotnet-runtime-deps-6.0 dotnet-sdk-6.0 dotnet-targeting-pack-6.0 libbinutils libltdl-dev libodbc1 m4 netstandard-targeting-pack-6.0 odbcinst odbcinst1debian2 unixodbc-dev

Для версий ниже:

sudo apt install supervisor aspnetcore-runtime-3.1 aspnetcore-targeting-pack-3.1 autoconf automake autotools-dev binutils binutils-common binutils-x86-64-linux-gnu dotnet-apphost-pack-3.1 dotnet-hostfxr-3.1 dotnet-runtime-3.1 dotnet-runtime-deps-3.1 dotnet-sdk-3.1 dotnet-targeting-pack-3.1 libbinutils libltdl-dev libodbc1 m4 netstandard-targeting-pack-2.1 odbcinst odbcinst1debian2 unixodbc-dev

2.5. Установите конструктор документов

Необходим для установки, если версия вашего Корпоративного сервера 2024 ниже 2.0.2024.2171 версии:

wget https://download.r7-office.ru/ubuntu/r7-office-documentconstructor_1.7.4-357_amd64.deb

apt install ./r7-office-documentconstructor_1.7.4-357_amd64.deb

3. На ВМ с Корпоративным сервером 2024

Важно

При включенной службе firewalld необходимо выполнить настройку.

# Откройте

# Доступ к БД

sudo firewall-cmd --permanent --zone=public --add-service=postgresql

# Доступ к очереди

sudo firewall-cmd --permanent --zone=public --add-service=amqp

# Доступ к сервису registry

sudo firewall-cmd --permanent --zone=public --add-port=7777/tcp

# Доступ к сервису search

sudo firewall-cmd --permanent --zone=public --add-port=2664/tcp

# Доступ к сервису хранения

sudo firewall-cmd --permanent --zone=public --add-port=11581/tcp

sudo firewall-cmd --permanent --zone=public --add-port=11580/tcp

 

# Перезапустите службу firewalld

sudo firewall-cmd --reload

  

# Проверьте правила для зоны public

sudo firewall-cmd --zone=public --list-all

3.1. Заархивируйте необходимые файлы и директории

tar czvf processing.tar.gz --selinux /opt/r7-office/Processing /var/log/r7-office/CDDisk/R7.Storage.Server.Processing.Host /var/log/r7-office/CDDisk/Processing /etc/supervisor /var/r7-office/filestorage_temp_proc

3.2. Перенесите удобным вам способом на ВМ с ролью Процессинг

Например, через scp:

scp processing.tar.gz ipВМпроцессинга:/root/

3.3. Узнайте uid и gid пользователя cddisk

id cddisk

Вывод:

id cddisk

uid=120(cddisk) gid=132(cddisk) группы=132(cddisk)

3.4. Удалите конфигурационный файл

rm /etc/supervisor/conf.d/cddisk-processing.conf

3.5. Отредактируйте файл

vi /etc/supervisor/conf.d/cddisk.conf

Приведите к виду:

[group:cddisk]

programs=api,filestorage,searchapi,registry,apisso

3.6. Перезапустите сервисы

systemctl restart supervisor.service

supervisorctl restart all

3.7. Открыть доступ к RabbitMQ

3.7.1. Отредактируйте файл

nano /etc/rabbitmq/rabbitmq.conf

Приведите в нём параметры к виду:

listeners.tcp.default = 127.0.0.1:5672

listeners.tcp.other_ip = 192.168.27.77:5672
Важно

Если файла или параметров нет, то создайте их самостоятельно.

Где:

  • listeners.tcp.default — слушается интерфейс 127.0.0.1 на порту 5672;
  • listeners.tcp.other_ip — слушается интерфейс 192.168.27.77 на порту 5672.

3.7.2. Перезапустите сервис

systemctl restart rabbitmq-server
3.7.2.1. Проверьте, что все интерфейсы слушаются
netstat -tulpan | grep 5672

Вывод:

netstat -tulpan | grep 5672

tcp 0 0 127.0.0.1:5672 0.0.0.0:* LISTEN 15118/beam.smp

tcp 0 0 192.168.27.77:5672 0.0.0.0:* LISTEN 15118/beam.smp

3.7.3. Создайте хост и пользователя

3.7.3.1. Создайте пользователя для Процессинга
rabbitmqctl add_user processing processing

Где:

  • processing — имя пользователя;
  • processing — пароль пользователя.
3.7.3.2. Выдайте права пользователю
rabbitmqctl set_permissions -p / processing ".*" ".*" ".*"
3.7.3.3. Создайте хост

С данного хоста будет разрешено подключение:

rabbitmqctl add_vhost 192.168.25.234

Где:

  • 192.168.25.234 — IP-адрес сервера с Процессингом.
Важно

Если таких ВМ несколько, то выполните для каждого IP.

3.7.3.4. Дайте права для ВМ с Процессингом
rabbitmqctl set_permissions -p 192.168.25.234 processing ".*" ".*" ".*"

Где:

  • 192.168.25.234 — IP-адрес сервера с Процессингом;
  • processing — имя созданного в п.3.7.3.1 пользователя.
Важно

Если таких ВМ несколько, то выполните для каждого IP.

3.8. Настроить доступ к БД

3.8.1. Отредактируйте файл pg_hba

vi /etc/postgresql/11/main/pg_hba.conf

Добавьте следующую строку:

host cddisk cddisk 192.168.25.234/32 md5

Где:

  • cddisk — имя базы данных;
  • cddisk — имя пользователя, с доступом к БД cddisk;
  • 192.168.25.234/32 — IP, с которого разрешено подключение;
  • md5 — метод авторизации.
Важно

Если ВМ с Процессингом несколько, то добавьте для каждой строку.

3.8.2. Перезапустите сервис

systemctl restart postgresql

3.9. Отредактируйте файл сервиса Registry

vi /opt/r7-office/Service.Registry/appsettings.json

Приведите параметры к виду:

},

"AllowedHosts": "*",

"Clients": [

  {

    "id": "IFileStorageService",

    "host": "http://192.168.27.77:11580/"

  },

  {

    "id": "IFileStorageRestService",

    "host": "http://192.168.27.77:11580/"

  },

  {

    "id": "IFolderStorageRestService",

    "host": "http://192.168.27.77:11580/"

  },

 

  { "id": "ITcpFolderStorageService",

    "Address": "192.168.27.77",

    "Port": "11581"

  },

  { "id": "ITcpFileStorageService",

    "Address": "192.168.27.77",

    "Port": "11581"

  },

  {

    "id": "ISearchService",

    "host": "http://192.168.27.77:2664"

  }

],

"ServiceRegistry": {

  "Host": "http://+:7777"

}

Где:

  • 192.168.27.77 — IP ВМ, где находится сервис filestorage и сервис search. Если эти ВМ являются разными, то указать верные значения.

3.10. Отредактируйте appsettings файл сервиса Filestorage

vi /opt/r7-office/FileStorage/appsettings.json

Приведите параметры к виду:

},

"AllowedHosts": "*",

"FileStorage": {

  "Host": "http://+:11580"

}

3.11. Отредактируйте filestorage файл сервиса Filestorage

vi /opt/r7-office/FileStorage/filestorage.json

Приведите параметры к виду:

"Connection": {

  "Tcp": {

    "Address": "0.0.0.0",

    "Port": 11581

  }

3.12. Перезапустите сервисы

supervisorctl restart all

4. На ВМ с Процессингом

4.1. Создание группы и пользователя cddisk

Из п.3.3. вы узнали uid и gid пользователя.

Создайте его с помощью следующих команд:

4.1.1. Создайте группу

groupadd -g 132 cddisk

Где:

  • 132 — id группы;
  • cddisk — имя группы.

4.1.2. Создайте пользователя

useradd -u 120 -g 132 cddisk

Где:

  • 120 — id пользователя;
  • 132 — id группы;
  • cddisk — имя пользователя.

4.2. Распакуйте архив

tar xzvf processing.tar.gz --selinux -C /

4.3. Удалите лишние конфигурационные файлы

rm /etc/supervisor/conf.d/{cddisk-api,cddisk-filestorage,cddisk-registry,cddisk-ssoapi,cddisk-searchapi}.conf

4.4. Отредактируйте файл

vi /etc/supervisor/conf.d/cddisk.conf

Приведите к виду:

[group:cddisk]

programs=processing

4.5. Отредактируйте файл

vi /opt/r7-office/Processing/appsettings.json

Измените следующие параметры:

4.5.1. Хост с Registry

Укажите верный IP:

"serviceRegistry": {

  "address": "http://192.168.27.77:7777"

},
Уточнение

В данном примере, это IP-адрес ВМ с Корпоративным сервером 2024.

4.5.2. Хост с Search

Укажите верный IP-адрес:

"documentSearchServiceSettings": {

  "host": "http://192.168.27.77:2664"

},
Уточнение

В данном примере, это IP-адрес ВМ с Корпоративным сервером 2024.

Важно

С версии 2.0.2024.2716 данный параметр не актуален.

4.5.3. Хост с БД

Укажите верный IP, т.к. остальные данные не изменяли:

"R7StorageServerUserActions": "Database=cddisk;Username=cddisk;Password=СЕКРЕТ;Host=192.168.27.77;Port=5432;",

"R7StorageServer": "Database=cddisk;Username=cddisk;Password=СЕКРЕТ;Host=192.168.27.77;Port=5432;",
Уточнение

В данном примере, это IP-адрес ВМ с Корпоративным сервером 2024.

4.5.4. Хост с RabbitMQ

Укажите верный IP-адрес, пользователя и пароль:

"rabbitMq": {

  "host": "192.168.27.77",

  "username": "processing",

  "password": "processing",

  "timeout": 10

},
Уточнение

В данном примере, это IP ВМ с Корпоративным сервером 2024, а пользователя создали в п.3.7.3.

4.6. Отредактируйте файл services

vi /opt/r7-office/Processing/services.json

Приведите параметры к виду:

{

  "name": "ConvertDocumentMessageHandler",

  "type": "ConvertDocumentMessageHandler",

  "subscriptionEndpoint": "Convert.Document",

  "publicationEndpoint": "",

  "useExchange": true,

  "degreeOfParallelism": 5,

  "retry": true,

  "retryCount": 2,

  "process": "/bin/documentconstructor"

},

{

  "name": "IndexingDocumentMessageHandler",

  "type": "IndexingDocumentMessageHandler",

  "subscriptionEndpoint": "Indexing.Document",

  "publicationEndpoint": "",

  "useExchange": true,

  "degreeOfParallelism": 3,

  "retry": true,

  "retryCount": 2,

  "process": "/bin/documentconstructor"

},

Где:

  • /bin/documentconstructor — путь до исполняемого файла Конструктора Документов, который установили в п. 2.5.
Важно

Не актуально для версии Корпоративного сервера 2024 выше 2.0.2024.2171.

4.7. Перезапустите сервис

systemctl restart supervisor.service

supervisorctl restart all

5. Проверьте работу портала