Содержание
- Схема взаимодействия сервисов
- Условия развёртки:
- 1. Необходимые сервисы для реализации отказоустойчивости комплекса
- 2. NFS — хранение общих каталогов
- 3. Кластер ДС
- 4. NGINX балансер (внешний)
- 5. Установка сервера приложений Корпоративный сервер 2024
- 5.1. Добавление репозитория
- 5.2. Скачайте архив Р7 Диск для установки и положите его на ВМ
- 5.3. В процессе установки:
- 5.3.1. Чистая установка
- 5.3.2. Установка СУБД
- 5.3.3. Установка сервера документов:
- 5.3.4. URL Сервера документов
- 5.3.5. Секрет для DS и формирования JWT
- 5.3.6. Установка api и web диска
- 5.3.7. Тип СУБД Р7 Диск
- 5.3.8. Создание БД
- 5.3.9. Хост СУБД
- 5.3.10. Порт СУБД
- 5.3.11. Пользователь с правами БД
- 5.3.12. Пароль пользователя
- 5.3.13. coremachinkey от Корпоративного сервера
- 5.3.14. Настройка https
- 5.3.15. Укажите домен
- 5.3.16. Префикс Р7 Диск
- 5.3.17. Префикс Р7-Управление
- 5.3.18. Префикс Р7 Контакты
- 5.3.19. Префикс Р7 Проекты
- 5.3.20. Префикс Р7 Почта
- 5.3.21. Префикс Р7 Календарь
- 5.3.22. Префикс Сервер документов
- 5.3.23. Перезагрузите систему
- 5.3.24. Проверка записей в БД
- 5.4. Включение rabbitmq для Корпоративный сервер 2024 для проверки работы кластеров
- 5.5. Проверка работы Корпоративного сервера
- 6. Продолжение настройки внешнего nginx балансер (внешний)
- 7. Вынос processing
- 7.1. На установленном КС
- 7.2. На ВМ с ролью Processing
- 7.2.1. Настройка NFS
- 7.2.2. Перенесите архив с КС и распакуйте
- 7.2.3. Произведите установку на ВМ роли Processing
- 7.2.4. Создайте группу и пользователя
- 7.2.5. Удалите лишние конфигурационные файлы
- 7.2.6. Отредактируйте файл
- 7.2.7. Отредактируйте файл
- 7.2.8. Перезапустите сервис и добавьте в автозагрузку
- 7.2.9. Повторите действия для последующих нод Processing
- 8. Вынос search
- 9. Вынос api
- 9.1. На установленном КС
- 9.2. На ВМ с ролью API
- 9.2.1. Настройка NFS
- 9.2.2. Перенесите архив с КС и распакуйте
- 9.2.3. Произведите установку на ВМ роли Processing
- 9.2.4. Создайте группу и пользователя
- 9.2.5. Удалите лишние конфигурационные файлы
- 9.2.6. Отредактируйте файл /etc/supervisord.d/cddisk.ini
- Приведите к виду:
- 9.2.7. Отредактируйте файл /opt/r7-office/Api/appsettings.json
- 9.2.8. Отредактируйте файл/opt/r7-office/Sso.Api/appsettings.json
- 9.2.9. Перезапустите сервис и добавьте в автозагрузку
- 9.2.10. Повторите действия для последующих нод API
- 10. Вынос registry+filestorage
- 10.1. На установленном КС
- 10.2. На ВМ с ролью Registry+Filestorage
- 10.2.1. Настройка NFS
- 10.2.2. Перенесите архив с КС и распакуйте
- 10.2.3. Произведите установку
- 10.2.4. Создайте группу и пользователя
- 10.2.5. Удалите лишние конфигурационные файлы
- 10.2.6. Отредактируйте файл /etc/supervisord.d/cddisk.ini
- 10.2.7. Отредактируйте файл /opt/r7-office/Service.Registry/appsettings.json
- 10.2.8. Отредактируйте файл /opt/r7-office/FileStorage/appsettings.json
- 10.2.9. Повторите действия для других нод Registry+filestorage
- 11. Проверка работы сервиса
Схема взаимодействия сервисов

Условия развёртки:
Для всех ВМ использовался RedOS 7.3.5 и рекомендуемыми параметрами от 2 CPU, 4GB RAM, SSD от 40 GB, для NFS так же используется быстрый диск для уменьшения latency обработки данных.
Сборка осуществлялась на Корпоративный сервер 2024 версии 4400 и Сервере документов версии 622, RabbitMQ версии 3.13.7, PostgreSQL 16.4, Redis 7.2.6, Nginx 1.26.3, HAproxy 3.0.5.
Созданы записи в DNS:
A *.test3.s7-office.site 192.168.27.35 A ds-cluster.test3.s7-office.site 192.168.27.35
Так же возможно создание записей для нод кластеров для обращения к ним по DNS имени. В статье описаны примеры подключения с минимальным набором A записей.
Используется сертификат wildcard на домен test3.s7-office.site — будет фигурировать в настройках Nginx.
Для установки потребуется wildcard сертификат, содержащий полную цепочку (fullchain)
Например:
—-BEGIN CERTIFICATE——
(Your Primary SSL certificate: your_domain_name.crt)
——END CERTIFICATE——
——BEGIN CERTIFICATE——
(Your Intermediate certificate: DigiCertCA.crt)
——END CERTIFICATE——
——BEGIN CERTIFICATE——
(Your Root certificate: TrustedRoot.crt)
——END CERTIFICATE——
Где:
Основной Certificate — your_domain_name.crt
Промежуточный Certificate — DigiCertCA.crt
Корневой Certificate — TrustedRoot.crt
В состав дистрибутива Корпоративный сервер 2024 не включён модуль Р7 Графика. Для установки модуля Р7 Графика необходимо воспользоваться инструкциями, опубликованными в разделе: Р7 Графика > Установка ↗.
1. Необходимые сервисы для реализации отказоустойчивости комплекса
1.1. Необходимо сервисы для работы комплекса
PostgreSQL версии не ниже версии 16;
RabbitMQ-server версии не ниже 3 и не выше 3.13;
Redis версии не ниже 7.2.6;
HAproxy версии не ниже 3.0.5 или Nginx версии не ниже 1.26.3.
Возможно использование кластерных архитектур на примере статьи: Пример развертки кластеров Pgsql, RabbitMQ, Redis ↗.
Возможно использование однонодовых инсталляций и master-slave (replica).
Для работы сервера документов на версии 622 с кластерами Pgsql, Rabbitmq, Redis требуется балансировщик Пример реализации балансировщика HAproxy для архитектуры High Available ↗.
2. NFS — хранение общих каталогов
При включенной службе firewalld необходимо добавить сервис в исключение и выполнить настройку для NFS.
2.1. Установка
sudo dnf install nfs-utils nfs4-acl-tools -y sudo systemctl enable nfs-server --now
2.2. Настройка
Каталоги для Сервера документов:
mkdir -p /mnt/ds/cache - общий каталог кэшированных данных (распакованных файлов) сервера документов mkdir -p /mnt/ds/data/ - размещается файл лицензии с именно таким именем license.lic
Каталоги для Корпоративный сервер 2024:
mkdir -p /mnt/search - хранение индексов для поисковой системы mkdir -p /mnt/disk/filestorage - хранение пользовательских данных mkdir -p /mnt/disk/filestorage_temp - временный каталог хранения пользовательских данных mkdir -p /mnt/disk/filestorage_temp_proc - каталог для хранения временных данных proccessing
2.2.1. Указание пользователя и группы на каталоги
Важно заметить, что в данной инструкции рассматривается чистая инсталляции без имеющихся Сервера документов (DS). Если у Вас уже есть DS, то необходимо указать UID и GID пользователя ds с ВМ, где установлен DS.
Можно воспользоваться командой:
id ds
В данной инструкции установки не рассматривается наличие уже установленного Документ сервера, поэтому UID и GID будут везде указаны 976. Если Вам важно сохранить имеющийся DS, то необходимо использовать GID и UID с данной ВМ, либо изменить их на ней, возможно использовать данные команды:
supervisorctl stop all groupmod -g 976 ds usermod -u 976 -g 976 ds chown -R ds:ds /var/lib/r7-office/ chown -R ds:ds /var/www/r7-office/ chown -R ds:ds /etc/r7-office/
В случае если сервер не установлен перейдите к пункту 7 и после установки DS проверьте какие выданы GID и UID на установленном сервере документов.
Создание пользователя на хосте с ролью NFS:
ВАЖНО: UID и GID пользователя ds должны быть одинаковые на всех ВМ с Документ сервером и NFS хранилищем.
Пример создания группы и пользователя:
groupadd -g 976 ds useradd -u 976 -g 976 ds
Пример изменения группы и пользователя Создайте пользователя с uid 976 и добавляем его в группу с gid 976:
groupmod -g 976 ds usermod -u 976 -g 976 ds
Укажите права на каталоги для сервера документов:
chown ds:ds -R /mnt/ds/
Рекомендуется упростить доступ к файлам на каталог /mnt и предоставить права на чтение и запись для группы 976 с пользователями ds и cddisk, к примеру:
chmod 770 -R /mnt
2.2.2. Отредактируйте файл
/etc/exports:
/mnt/ds/cache 192.168.26.0/24(rw,insecure,nohide,all_squash,anonuid=976,anongid=976,no_subtree_check) /mnt/ds/data 192.168.26.0/24(rw,insecure,nohide,all_squash,anonuid=976,anongid=976,no_subtree_check) /mnt/disk/filestorage 192.168.27.0/24(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check) /mnt/disk/filestorage_temp 192.168.27.0/24(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check) /mnt/disk/filestorage_temp_proc 192.168.27.0/24(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check) /mnt/search 192.168.26.0/24(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check)
Где:
/mnt/ds/cache— путь к папке, для которой раздается доступ;192.168.26.0/24— IP-адрес, которому раздается доступ к папке (можно указать всю сеть, тогда запись примет вид192.168.1.0/24);(rw,no_root_squash,sync)— набор опций, опции могут быть:rw— чтение запись(может принимать значениеro— только чтение);no_root_squash— по умолчанию пользовательrootна клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;nohide— NFS автоматически не показывает нелокальные ресурсы (например, примонтированые с помощьюmount –bind), эта опция включает отображение таких ресурсов;subtree_check (no_subtree_check)— в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах. Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы. Отменить контроль поддерева можно с помощью опцииno_subtree_check. Опцияsubtree_check, включающая такой контроль, предполагается по умолчанию. Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска.
Для публикации сетевых директорий:
exportfs -ra
3. Кластер ДС
При включенной службе firewalld необходимо добавить сервис и выполнить настройку для Сервера документов по протоколам http и https.
3.1. Установите и запустите nginx
dnf install nginx -y systemctl enable nginx --now
3.2. Установка утилита nfs и монтирование каталоги
3.2.1. Установите пакет
dnf install nfs-utils
3.2.2. Создайте группу и пользователя (id те же, что и на nfs должны быть)
groupadd -g 976 ds useradd -u 976 -g 976 ds
3.2.3. Создайте каталоги
mkdir /var/lib/r7-office/documentserver/App_Data/cache -p mkdir /var/www/r7-office/Data -p
3.2.4. Назначьте права
chown ds:ds -R /var/lib/r7-office/ chown ds:ds -R /var/www/r7-office/
3.2.5. Монтирование
sudo mount -t nfs -O uid=1100,iocharset=utf-8 192.168.26.247:/mnt/ds/cache /var/lib/r7-office/documentserver/App_Data/cache sudo mount -t nfs -O uid=1100,iocharset=utf-8 192.168.26.247:/mnt/ds/data /var/www/r7-office/Data
Где:
192.168.26.247 — IP-адрес NFS сервера;
/mnt/ds/cahce и /mnt/ds/data — каталог на NFS сервере;
/var/www/r7-office/Data и /var/lib/r7-office/documentserver/App_Data/cache — пути монтирования на ВМ с DS.
3.2.6. Проверьте монтирование
df -h
3.2.7. Добавьте запись в /etc/fstab
192.168.26.247:/mnt/ds/cache /var/lib/r7-office/documentserver/App_Data/cache nfs defaults 0 0 192.168.26.247:/mnt/ds/data /var/www/r7-office/Data nfs defaults 0 0
3.3. Установка Сервера документов и настройка
Произведите установку сервера документов по актуальной инструкции: Установка Р7 Офис Сервер документов для Linux РЕД ОС ↗.
В файл /etc/hosts добавьте запись для адресации с HAproxy:
192.168.27.83 haproxy
3.3.1. Конфигурация
Если это первая инсталляция, то файла этого нет, можете сделать рандомный секрет, например, командой ниже:
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 32
Заголовок AuthorizationJwt можете использовать по умолчанию. Задайте секрет и хедер:
declare -x JWT_SECRET=VrTMopwWwGP1 declare -x JWT_HEADER=AuthorizationJwt
Эти параметры из файла /etc/r7-office/documentserver/local.json должны быть ОДИНАКОВЫ для всех ВМ с DS в кластере, если используется JWT.

Если JWT необходимо отключить, то выполните данную команду:
declare -x JWT_ENABLED=false
Запустите скрипт:
bash documentserver-configure.sh
Будут запрошены данные.
Для PostgreSQL:
Host:192.168.27.83:5000;Database:ds;User:ds;Password:ds.
Где:
host— IP-адрес HAproxy;Database— имя Базы Данных;User— Имя пользователя;Password— Пароль от пользователя.
Для AMQP:
Host:192.168.27.83;User:r7office;Password:r7office.
Где:
host— IP-адрес HAproxy;user— пользователь для подключения;password— пароль от пользователя.
В конфигурации /etc/r7-office/documentserver/local.json укажите в параметре rabbitmq:
"rabbitmq": {
"url": "amqp://r7office:r7office@192.168.27.83"
},
Где:
r7office:r7office— логин и пароль из пункта 2.3.2 этой статьи ↗;192.168.27.83— адрес сервера HAproxy.
Для Redis:
в файле /etc/r7-office/documentserver/default.json измените параметр host и добавьте опцию авторизации password:
"redis": {
"name": "redis",
"prefix": "ds:",
"host": "192.168.27.83",
"port": 6379,
"options": {
"password": "SecretPassword"
}
},
Где:
host— IP-адрес HAproxy;prefix— ключи для идентификации сервера документов;port— порт подключения;password— пароль от пользователя.
Для Nginx:
Следующие действия обновят параметр secure_link_secret в файлах:
/etc/r7-office/documentserver/local.json
/etc/r7-office/documentserver/nginx/ds.conf
ВАЖНО: Данный параметр должен быть также одинаковым на всех нодах DS.
Запустите на одной ноде Сервера документов скрипт:
bash documentserver-update-securelink.sh
После скопируйте значение secretString из /etc/r7-office/documentserver/local.json:
"storage": {
"fs": {
"secretString": "lfzupJnq7A3G17vIPaxk"
}
}
}
и укажите на других нодах кластера Сервера документов в конфигурациях
/etc/r7-office/documentserver/local.json
/etc/r7-office/documentserver/nginx/ds.conf
Выполните перезапуск служб сервера документов и Nginx:
systemctl restart ds-* nginx
3.3.2. Проверьте статус служб
systemctl status ds-*
и логирование в файле /var/log/r7-office/documentserver/docservice/out.log.
3.3.3. Повторить для всех нод Сервера документов и указать одинаковые параметры JWT secret и header
4. NGINX балансер (внешний)
При включенной службе firewalld необходимо добавить сервис и выполнить настройку для Nginx прокси сервера по протоколам http/https.
4.1. Установите и запустите nginx
dnf install nginx -y systemctl enable nginx --now
4.2. Добавьте конфигурационный файл
4.2.1. /etc/nginx/conf.d/r7-ds.conf
Данная настройка является проксированием HTTPS на HTTP (Прокси сервер на HTTPS, DS на HTTP).
Этот сценарий используется, если требуется обеспечить безопасное соединение, чтобы все запросы автоматически перенаправлялись на HTTPS:
upstream docservice { #укажите все ноды серверов документов для переключения в режиме round robin
server 192.168.26.65 max_fails=3 fail_timeout=30s; #max_fails Количество неудачных попыток подключения к серверу, после которого сервер будет считаться недоступным
server 192.168.26.133 max_fails=3 fail_timeout=30s; #fail_timeout Время, в течение которого сервер будет считаться недоступным после достижения max_fails
}
map $http_host $this_host {
"" $host;
default $http_host;
}
map $http_x_forwarded_proto $the_scheme {
default $http_x_forwarded_proto;
"" $scheme;
}
map $http_x_forwarded_host $the_host {
default $http_x_forwarded_host;
"" $this_host;
}
map $http_upgrade $proxy_connection {
default upgrade;
"" close;
}
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host;
proxy_set_header X-Forwarded-Proto $the_scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
## Normal HTTP host
server {
listen 0.0.0.0:80;
server_name ds-cluster.test3.s7-office.site; #укажите доменное общее имя кластера серверов документов
server_tokens off;
## Redirects all traffic to the HTTPS host
return 301 https://$server_name:443$request_uri;
}
server {
listen 0.0.0.0:443 ssl http2;
server_name ds-cluster.test3.s7-office.site; #укажите доменное общее имя кластера серверов документов
server_tokens off;
ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt; #укажите путь к сертификату
ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key; #укажите путь к ключу сертификата
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options SAMEORIGIN; #при использовании самоподписных сертификатов закомментируйте
add_header X-Content-Type-Options nosniff;
#add_header Content-Security-Policy "frame-ancestors https://cddisk.<ваш домен>.ru https://cdmail.<ваш домен>.ru"; #при использовании самоподписных сертификатов раскомментировать и указать используемый домен
location / {
proxy_pass http://docservice;
proxy_http_version 1.1;
proxy_next_upstream error timeout http_502; #Определяет, в каких случаях Nginx будет перенаправлять запрос на следующий сервер в upstream
proxy_next_upstream_timeout 2s; #Ограничивает время, в течение которого Nginx будет пытаться перенаправить запрос на другой сервер
proxy_next_upstream_tries 3; #Ограничивает количество попыток перенаправления запроса на другой сервер
}
}
в блоке upstream docservice {} — указаны сервера DS;
server_name ds-cluster.test3.s7-office.site;— указано DNS имя reverse proxy;ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt;— указан путь до полной цепочки сертификатов;ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key;— указан путь до закрытого ключа.
4.2.2. Проверьте конфигурацию
nginx -t
4.2.3. Перезапустите сервис
systemctl restart nginx
4.2.4. Проверьте доступность
Перейдите по адресу ds-cluster.s7-office.site.ru и будет отображаться страница запущенного сервера документов.
5. Установка сервера приложений Корпоративный сервер 2024
Информация дополняет действия из статьи:
Установка Корпоративного сервера 2024 на РЕД ОС ↗.
Корпоративный сервер — сервер приложений будет в дальнейшем трансформирован на отдельные ноды согласно схеме. При включенной службе firewalld необходимо добавить сервис и выполнить настройку для Корпоративного сервера по протоколам http/https.
5.1. Добавление репозитория
5.1.1. Откройте файл на редактирование /etc/yum.repos.d/r7server.repo
5.1.2. Добавьте следующий текст
[r7server] name=r7server baseurl=https://downloads.r7-office.ru/repository/r7-server-yum/ enabled=1 gpgcheck=1 gpgkey=https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public sslverify=1 username=server password=KwmuQmOzuFIw9wcJsL3zb
5.1.3. Обновите список репозиториев с подгружаемыми данными
sudo yum makecache
5.2. Скачайте архив Р7 Диск для установки и положите его на ВМ
Рекомендуем, для корректной установки, архив разместить в директории, отличной от /root, например в /mnt или /tmp.
5.2.1. Зайдите в директорию с архивом
cd /mnt
5.2.2. Распакуйте архив
unzip RedOS_*.zip
5.2.3. Выполните команду
sed -i "s/dnf install -y postgresql-client/dnf install -y postgresql/" CDDisk/install.sh
5.2.4. Настройка SSL
Перед установкой скопируйте crt и key файлы в папку sslcert.
Имя файла должно содержать название домена и расширение.
Обязательно в .crt указывать всю цепочку сертификатов, домен, промежуточные и корневой.
Например, для домена test3.s7-office.site имена файлов должны быть test3.s7-office.site.crt и test3.s7-office.site.key.
5.2.5. Добавьте права на исполнение скрипту
chmod +x online_installer.sh
5.2.6. Запустите установку
sudo bash ./online_installer.sh
На запрос пароля для sudo введите его.
5.3. В процессе установки:
5.3.1. Чистая установка
Если требуется выполнить чистую установку (удалит имеющуюся инсталляцию Р7 Диск и зависимости):
- Выберите Да.

5.3.2. Установка СУБД
PostgreSQL будет на другой ВМ:
- Выберите Да.

5.3.3. Установка сервера документов:

Сервер Документов находится на другой ВМ, то:
- Выберите Нет.
Также, необходимо сделать А запись в DNS указывающий Ваш домен и IP-адрес внешнего proxy Nginx сервера из пункта 7.
Пример добавленной А записи в DNS у провайдера Selectel указан на скриншоте:

5.3.4. URL Сервера документов
Укажите URL и протокол, как в примере ниже:
https://ds-cluster.test3.s7-office.site
5.3.5. Секрет для DS и формирования JWT
Введите секрет (Набор цифр, букв и спецсимволов. Длина от 8 символов) для защищённого доступа Р7 Диска и Сервера Документов — данные из пункта 3.3.1.

5.3.6. Установка api и web диска
Основное приложения Р7 Диска и веба (статика) сайта.

Для его установки:
- Выберите Да.
5.3.7. Тип СУБД Р7 Диск

- Выберите PostgreSQL.
5.3.8. Создание БД

Создание БД не требуется:
- Выберите Нет.
5.3.9. Хост СУБД
СУБД установлена отдельно, укажите IP-адрес HAproxy Пример реализации балансировщика HAproxy для архитектуры High Available ↗.
5.3.10. Порт СУБД

По умолчанию 5432 используется. Потребуется указать порт 5000 для HAproxy Пример реализации балансировщика HAproxy для архитектуры High Available ↗.
5.3.11. Пользователь с правами БД
созданный на этапе развертки БД пункт 1.2.3.1.1 Пример развертки кластеров Pgsql, RabbitMQ, Redis ↗

5.3.12. Пароль пользователя
созданный на этапе развертки БД пункт 1.2.3.1.1 Пример развертки кластеров Pgsql, RabbitMQ, Redis ↗

5.3.13. coremachinkey от Корпоративного сервера
Измените на актуальный, если есть Р7 Офис Корпоративный сервер 2019 и нажмите ОК,
если нет, нажмите ОK без редактирования.

5.3.14. Настройка https

Проверьте наличие сертификата и ключа в каталоге SSL из пункта 5.2.4.
- Выберите Да.
5.3.15. Укажите домен

Пример test3.s7-office.site
Необходимо указать домен, в котором у Вас созданы записи.
Например, при домене r7.ru, необходимо создать запись *.test3.s7-office.site. Пример записи в Selectel ниже c указанием proxy Nginx из пункта:

5.3.16. Префикс Р7 Диск

Укажите имя, которое будет открываться в браузере для веб р7-Диска.
Например, если вы хотите, чтобы открылся Р7 Диск по адресу cddisk.test3.s7-office.site, то указать нужно именно cddisk, без указания домена.
5.3.17. Префикс Р7-Управление

Укажите имя, которое будет открываться в браузере для веб админ панели.
Например, если вы хотите, чтобы открылся Р7-Управление по адресу admin.test3.s7-office.site, то указать нужно именно admin, без указания домена.
5.3.18. Префикс Р7 Контакты

Укажите имя, которое будет открываться в браузере для модуля контакты.
Например, если вы хотите, чтобы открылся Р7 Контакты по адресу contacts.test3.s7-office.site, то указать нужно именно contacts, без указания домена.
5.3.19. Префикс Р7 Проекты

Укажите имя, которое будет открываться в браузере для модуля проекты.
Например, если вы хотите, чтобы открылся Р7 Проекты по адресу projects.test3.s7-office.site, то указать нужно именно projects, без указания домена.
5.3.20. Префикс Р7 Почта

Укажите имя, которое будет открываться в браузере для модуля почта.
Например, если вы хотите, чтобы открылся Р7 Почта по адресу cdmail.test3.s7-office.site, то указать нужно именно cdmail, без указания домена.
5.3.21. Префикс Р7 Календарь

Укажите имя, которое будет открываться в браузере для веб календаря.
Например, если вы хотите, чтобы открылся Р7 Календарь по адресу calendar.test3.s7-office.site, то указать нужно именно calendar, без указания домена.
5.3.22. Префикс Сервер документов

Укажите имя, которое будет открываться в браузере для сервера документов.
Например, если вы хотите, чтобы открылся Р7-Документы по адресу ds-cluster.test3.s7-office.site, то указать нужно именно ds-cluster, без указания домена.
5.3.23. Перезагрузите систему
Для корректной работы Р7 Диска, требуется перезагрузка.

- Введите Да;
- Введите Нет, если вам требуется выполнить дополнительные действия до перезагрузки.
Без перезагрузки Корпоративный сервер 2024 работать не будет.
5.3.24. Проверка записей в БД
Проверьте по инструкции ↗ корректные данные для записей для значений:
SELECT "Id", "Value", "Key" from public."MessageSettings" where "Key" in ('documentServerUrl', 'files.docservice.secret', 'apiUrlInternal');
Для подключения к БД
psql -p5000 -h192.168.27.83 -Ucddisk cddisk
Где:
192.168.27.83— IP-адрес HAproxy PostgreSQL;5000— порт;- пароль используемый при установке кластера БД для пользователя
cddisk.
5.4. Включение rabbitmq для Корпоративный сервер 2024 для проверки работы кластеров
Укажите адрес HAproxy для сервисов Корпоративный сервер в файлах:
/opt/r7-office/Api/appsettings.json
/opt/r7-office/Sso.Api/appsettings.json
/opt/r7-office/Processing/appsettings.json
и измените секцию:
"rabbitMq": {
"host": "192.168.27.83", - укажите haproxy
"username": "r7office", - ранее созданные данные при развертке rabbitmq
"password": "r7office",
"timeout": 10
},
5.5. Проверка работы Корпоративного сервера
Для проверки работы Корпоративного сервера временно измените запись в DNS запись ведущую на *.test3.s7-office.site не на внешний Nginx, а на только что установленный Корпоративный сервер 2024.
Перейдите по доменному имени cddisk.test3.s7-office.site и авторизуйтесь под УЗ:
superadmin\superadmin
и проверьте работоспособность портала и возможность открывать\редактировать файлы.
После проверки верните DNS запись в прежний вид.
6. Продолжение настройки внешнего nginx балансер (внешний)
6.1. Конфигурации:
Пример основной конфигурации Nginx — /etc/nginx/nginx.conf:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
worker_cpu_affinity auto;
worker_priority -2;
worker_rlimit_nofile 30000;
pcre_jit on;
events {
multi_accept on;
worker_connections 8192;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 300;
types_hash_max_size 4096;
server_tokens off;
keepalive_requests 10000;
aio on;
reset_timedout_connection on;
send_timeout 1200;
client_body_timeout 30;
client_header_timeout 30;
server_names_hash_max_size 4096;
##
# Proxy Settings
##
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_temp_file_write_size 64k;
proxy_buffer_size 4k;
proxy_buffers 32 16k;
proxy_busy_buffers_size 32k;
proxy_temp_path /var/lib/nginx/tmp/proxy;
proxy_cache_valid 1h;
proxy_cache_key $scheme$proxy_host$request_uri$cookie_US;
proxy_cache_path /var/lib/nginx/proxy levels=1:2 inactive=2h keys_zone=onee:10m max_size=100m;
#fastcgi_cache_path /var/lib/nginx/fastcgi levels=1:2 inactive=2h keys_zone=two:10m max_size=100m;
##
# Open file Settings
##
open_file_cache max=100000 inactive=60s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
##
# Gzip Settings
##
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/javascript application/javascript application/x-javascript text/xml application/xml application/xml+rss application/json;
gzip_disable "msie6";
gzip_static on;
gzip_proxied any;
gzip_comp_level 7;
gzip_vary on;
ssl_buffer_size 16k;
http2_chunk_size 8k;
resolver 77.88.8.8 valid=300s ipv6=off;
resolver_timeout 5s;
##
# Header Settings
##
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
proxy_hide_header X-Powered-By;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
}
Создайте конфигурации в директории /etc/nginx/conf.d/:
admin.conf
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
root /var/www/r7-office/admin;
index index.html;
server_name admin.test3.s7-office.site; #укажите доменное имя модуля админ
server_tokens off;
client_max_body_size 25M;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt; #укажите путь к сертификату
ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key; #укажите путь к ключу сертификата
ssl_ciphers HIGH:!aNULL:!MD5;
location /saml2 {
proxy_set_header host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-forward-for $proxy_add_x_forwarded_for;
proxy_set_header X-Module Admin;
proxy_pass http://0.0.0.0:38034/saml2;
}
location /api {
proxy_pass http://backend_api/api;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-forward-for $proxy_add_x_forwarded_for;
proxy_set_header X-Module Admin;
}
location /web-apps {
proxy_pass http://0.0.0.0:8083/web-apps;
}
location / {
try_files $uri $uri/ /index.html;
}
}
calendar.conf
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
root /var/www/r7-office/calendar;
index index.html;
server_name calendar.test3.s7-office.site; #укажите доменное имя модуля календарь
server_tokens off;
client_max_body_size 25M;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt; #укажите путь к сертификату
ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key; #укажите путь к ключу сертификата
ssl_ciphers HIGH:!aNULL:!MD5;
location /api {
proxy_pass http://backend_api/api;
}
location / {
try_files $uri $uri/ /index.html;
}
}
cddisk.conf
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
root /var/www/r7-office/cddisk;
index index.html;
server_name cddisk.test3.s7-office.site; #укажите доменное имя модуля главной страницы приложения
server_tokens off;
client_max_body_size 1024M;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt; #укажите путь к сертификату
ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key; #укажите путь к ключу сертификата
ssl_ciphers HIGH:!aNULL:!MD5;
location /api {
proxy_pass http://backend_api/api;
}
location / {
try_files $uri $uri/ /index.html;
}
}
cdmail.conf
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
root /var/www/r7-office/cdmail;
index index.html;
server_name cdmail.test3.s7-office.site; #укажите доменное имя модуля почта
server_tokens off;
client_max_body_size 25M;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt; #укажите путь к сертификату
ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key; #укажите путь к ключу сертификата
ssl_ciphers HIGH:!aNULL:!MD5;
location /api {
proxy_pass http://backend_api/api;
}
location / {
try_files $uri $uri/ /index.html;
}
}
contacts.conf
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
root /var/www/r7-office/contacts;
index index.html;
server_name contacts.test3.s7-office.site; #укажите доменное имя модуля контакты
server_tokens off;
client_max_body_size 32M;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt; #укажите путь к сертификату
ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key; #укажите путь к ключу сертификата
ssl_ciphers HIGH:!aNULL:!MD5;
location /api {
proxy_pass http://backend_api/api;
}
location / {
try_files $uri $uri/ /index.html;
}
}
projects.conf
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
root /var/www/r7-office/projects;
index index.html;
server_name projects.test3.s7-office.site; #укажите доменное имя модуля проекты
server_tokens off;
client_max_body_size 32M;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt; #укажите путь к сертификату
ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key; #укажите путь к ключу сертификата
ssl_ciphers HIGH:!aNULL:!MD5;
location /api {
proxy_pass http://backend_api/api;
}
location / {
try_files $uri $uri/ /index.html;
}
}
r7-ds.conf
upstream docservice { #укажите все ноды серверов документов для переключения в режиме round robin
server 192.168.26.65 max_fails=3 fail_timeout=30s; #max_fails Количество неудачных попыток подключения к серверу, после которого сервер будет считаться недоступным
server 192.168.26.133 max_fails=3 fail_timeout=30s; #fail_timeout Время, в течение которого сервер будет считаться недоступным после достижения max_fails
}
map $http_host $this_host {
"" $host;
default $http_host;
}
map $http_x_forwarded_proto $the_scheme {
default $http_x_forwarded_proto;
"" $scheme;
}
map $http_x_forwarded_host $the_host {
default $http_x_forwarded_host;
"" $this_host;
}
map $http_upgrade $proxy_connection {
default upgrade;
"" close;
}
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host;
proxy_set_header X-Forwarded-Proto $the_scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
## Normal HTTP host
server {
listen 0.0.0.0:80;
server_name ds-cluster.test3.s7-office.site; #укажите доменное общее имя кластера серверов документов
server_tokens off;
## Redirects all traffic to the HTTPS host
return 301 https://$server_name:443$request_uri;
}
server {
listen 0.0.0.0:443 ssl http2;
server_name ds-cluster.test3.s7-office.site; #укажите доменное общее имя кластера серверов документов
server_tokens off;
ssl_certificate /etc/nginx/ssl/test3.s7-office.site.crt; #укажите путь к сертификату
ssl_certificate_key /etc/nginx/ssl/test3.s7-office.site.key; #укажите путь к ключу сертификата
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
location / {
proxy_pass http://docservice;
proxy_http_version 1.1;
proxy_next_upstream error timeout http_502; #Определяет, в каких случаях Nginx будет перенаправлять запрос на следующий сервер в upstream
proxy_next_upstream_timeout 2s; #Ограничивает время, в течение которого Nginx будет пытаться перенаправить запрос на другой сервер
proxy_next_upstream_tries 3; #Ограничивает количество попыток перенаправления запроса на другой сервер
}
}
regfs.conf
server {
listen 7777;
location / {
proxy_pass http://backend_reg;
proxy_http_version 1.1;
}
}
upstream.conf
upstream backend_api { #укажите адреса нод вынесенных api
server 192.168.27.73:38033;
server 192.168.27.143:38033;
}
upstream backend_reg{ #укажите адреса нод вынесенных registry+filestorage
server 192.168.27.153:7777;
server 192.168.27.109:7777;
}
6.2. Перенесите с КС следующие каталоги
/var/www/r7-office/admin/var/www/r7-office/calendar/var/www/r7-office/cddisk/var/www/r7-office/cdmail/var/www/r7-office/contacts/var/www/r7-office/projects
6.3. Опциональная развертка дополнительных нод Nginx
Реализация нескольких нод Nginx:
Пример реализации внешнего балансировщика Nginx для архитектуры High Available ↗.
7. Вынос processing
Инструкция:
Вынос сервиса Processing для РЕД ОС ↗.
При включенной службе firewalld необходимо добавить порт 7777 в исключения для внутреннего интерфейса.
7.1. На установленном КС
7.1.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/supervisord.conf /etc/supervisord.d /var/r7-office/filestorage_temp_proc
7.1.2. Узнайте uid и gid пользователя cddisk
id cddisk
7.2. На ВМ с ролью Processing
7.2.1. Настройка NFS
Укажите в /etc/fstab:
192.168.26.247:/mnt/disk/filestorage_temp_proc /var/r7-office/filestorage_temp_proc nfs defaults 0 2
где IP указывается адрес NFS
Примонтируйте каталог:
mount -a
7.2.2. Перенесите архив с КС и распакуйте
tar xzvf processing.tar.gz --selinux -C /
7.2.3. Произведите установку на ВМ роли Processing
sudo dnf install dotnet-sdk-3.1 postgresql-odbc supervisor -y
Для версии Корпоративного сервера 2.0.2024.14752 и выше:
sudo dnf install dotnet-sdk-6.0 postgresql-odbc supervisor -y
7.2.4. Создайте группу и пользователя
groupadd -g 131 cddisk useradd -u 119 -g 131 cddisk
7.2.5. Удалите лишние конфигурационные файлы
rm -f /etc/supervisord.d/{cddisk-api,cddisk-filestorage,cddisk-registry,cddisk-ssoapi,cddisk-searchapi}.ini
7.2.6. Отредактируйте файл
/etc/supervisord.d/cddisk.ini
Приведите к виду:
[group:cddisk] programs=processing
7.2.7. Отредактируйте файл
/opt/r7-office/Processing/appsettings.json
Хост с Registry
Укажите IP с внешним прокси сервером:
"serviceRegistry": { "address": "http://192.168.27.35:7777" },
Укажите IP HAProxy и корректные данные по доступу к БД и RabbitMQ из пункта:
"ConnectionStrings": { "R7StorageServerUserActions": "Database=cddisk;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "R7StorageServer": "Database=cddisk;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "CommunityRepository": "Server=localhost;UserID=root;Password=test;Database=r7-office", "Payments": "Database=Payments;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "GeoNames": "Database=GeoNames;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;" }, "DbType": "postgre", "rabbitMq": { "host": "192.168.27.83", "username": "r7office", "password": "r7office", "timeout": 10 }
7.2.8. Перезапустите сервис и добавьте в автозагрузку
systemctl enable supervisord.service systemctl restart supervisord.service
7.2.9. Повторите действия для последующих нод Processing
8. Вынос search
Инструкция по ссылке: Вынос сервиса Search для РЕД ОС ↗.
При включенной службе firewalld необходимо добавить порт 2664.
8.1. На установленном КС
8.1.1. Заархивируйте необходимые файлы и директории
tar czvf search.tar.gz --selinux /opt/r7-office/SearchApi /var/log/r7-office/CDDisk/SearchApi /var/log/r7-office/CDDisk/Bsa.Search.Api.Host /etc/supervisord.d /var/r7-office/searchindex
8.1.2. Узнайте uid и gid пользователя cddisk
id cddisk
8.2. На ВМ с ролью Search
8.2.1. Настройка NFS
Укажите в /etc/fstab:
192.168.26.247:/mnt/search /var/r7-office/searchindex nfs defaults 0 2
Где:
- IP — адрес NFS.
Примонтируйте каталог:
mount -a
Перенесите архив с Корпоративным сервером и распакуйте:
tar xzvf search.tar.gz --selinux -C /
8.2.2. Произведите установку
sudo dnf install dotnet-sdk-3.1 postgresql-odbc supervisor -y
Для версии Корпоративного сервера 2.0.2024.14752 и выше:
sudo dnf install dotnet-sdk-6.0 postgresql-odbc supervisor -y
8.2.3. Создайте группу и пользователя
groupadd -g 131 cddisk useradd -u 119 -g 131 cddisk
8.2.4. Удалите лишние конфигурационные файлы
rm -f /etc/supervisord.d/{cddisk-api,cddisk-filestorage,cddisk-registry,cddisk-ssoapi,cddisk-processing,cddisk-ssoapi}.ini
8.2.5. Отредактируйте файл /etc/supervisord.d/cddisk.ini
Приведите к виду:
[group:cddisk] programs=searchapi
8.2.6. Перезапустите сервис и добавьте в автозагрузку
systemctl enable supervisord.service systemctl restart supervisord.service
8.2.7. Повторите действия для последующих нод Search
9. Вынос api
Инструкция по ссылке: Вынос сервиса API для РЕД ОС ↗.
При включенной службе firewalld необходимо добавить порт 38033 и 38034.
9.1. На установленном КС
9.1.1. Заархивируйте необходимые файлы и директории
tar czvf api.tar.gz --selinux /opt/r7-office/Api/ /opt/r7-office/Sso.Api /var/log/r7-office/CDDisk/R7.Storage.Server.Api.Host /var/log/r7-office/CDDisk/R7.Sso.Api.Host /var/log/r7-office/CDDisk/Api /var/log/r7-office/CDDisk/R7.Sso.Api.Host /etc/supervisord.conf /etc/supervisord.d /var/r7-office/filestorage_temp
9.1.2. Узнайте uid и gid пользователя cddisk
id cddisk
9.2. На ВМ с ролью API
9.2.1. Настройка NFS
Укажите в /etc/fstab:
192.168.26.247:/mnt/disk/filestorage_temp /var/r7-office/filestorage_temp nfs defaults 0 2
Где:
- IP — адрес NFS
Примонтируйте каталог:
mount -a
9.2.2. Перенесите архив с КС и распакуйте
tar xzvf api.tar.gz --selinux -C /
9.2.3. Произведите установку на ВМ роли Processing
sudo dnf install dotnet-sdk-3.1 postgresql-odbc supervisor -y
Для версии Корпоративного сервера 2.0.2024.14752 и выше:
sudo dnf install dotnet-sdk-6.0 postgresql-odbc supervisor -y
9.2.4. Создайте группу и пользователя
groupadd -g 131 cddisk useradd -u 119 -g 131 cddisk
9.2.5. Удалите лишние конфигурационные файлы
rm -f /etc/supervisord.d/{cddisk-processing,cddisk-filestorage,cddisk-registry,cddisk-searchapi}.ini
9.2.6. Отредактируйте файл /etc/supervisord.d/cddisk.ini
Приведите к виду:
[group:cddisk] programs=api,apisso
9.2.7. Отредактируйте файл /opt/r7-office/Api/appsettings.json
Хост с Registry
Укажите IP с внешним прокси сервером:
"serviceRegistry": { "address": "http://192.168.27.35:7777" },
Укажите IP HAProxy и корректные данные по доступу к БД и RabbitMQ из пункта:
"ConnectionStrings": { "R7StorageServerUserActions": "Database=cddisk;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "R7StorageServer": "Database=cddisk;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "CommunityRepository": "Server=localhost;UserID=root;Password=test;Database=r7-office", "Payments": "Database=Payments;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "GeoNames": "Database=GeoNames;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;" }, "DbType": "postgre", "rabbitMq": { "host": "192.168.27.83", "username": "r7office", "password": "r7office", "timeout": 10 }
9.2.8. Отредактируйте файл/opt/r7-office/Sso.Api/appsettings.json
Хост с Registry
Укажите IP с внешним прокси сервером:
"serviceRegistry": { "address": "http://192.168.27.35:7777" },
Укажите IP HAProxy и корректные данные по доступу к БД и RabbitMQ из пункта:
"ConnectionStrings": { "R7StorageServerUserActions": "Database=cddisk;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "R7StorageServer": "Database=cddisk;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "CommunityRepository": "Server=localhost;UserID=root;Password=test;Database=r7-office", "Payments": "Database=Payments;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;", "GeoNames": "Database=GeoNames;Username=cddisk;Password=cddisk;Host=192.168.27.83;Port=5000;" }, "keyPhraze": "3_Dd1d05fnaddf", "rabbitMq": { "host": "192.168.27.83", "username": "r7office", "password": "r7office", "timeout": 10 }
9.2.9. Перезапустите сервис и добавьте в автозагрузку
systemctl enable supervisord.service systemctl restart supervisord.service supervisorctl restart all
9.2.10. Повторите действия для последующих нод API
10. Вынос registry+filestorage
При включенной службе firewalld необходимо добавить порт 11581 и 11580.
10.1. На установленном КС
10.1.1. Заархивируйте необходимые файлы и директории
tar czvf regfs.tar.gz --selinux /opt/r7-office/FileStorage /opt/r7-office/Service.Registry /var/log/r7-office/CDDisk/FileStorage /var/log/r7-office/CDDisk/Service.Registry /etc/supervisord.conf /etc/supervisord.d /var/r7-office/filestorage
10.1.2. Узнайте uid и gid пользователя cddisk
id cddisk
10.2. На ВМ с ролью Registry+Filestorage
10.2.1. Настройка NFS
Укажите в /etc/fstab:
192.168.26.247:/mnt/disk/filestorage /var/r7-office/filestorage nfs defaults 0 2
Где:
- IP — адрес NFS
Примонтируйте каталог:
mount -a
10.2.2. Перенесите архив с КС и распакуйте
tar xzvf regfs.tar.gz --selinux -C /
10.2.3. Произведите установку
sudo dnf install dotnet-sdk-3.1 postgresql-odbc supervisor -y
Для версии Корпоративного сервера 2.0.2024.14752 и выше:
sudo dnf install dotnet-sdk-6.0 postgresql-odbc supervisor -y
10.2.4. Создайте группу и пользователя
groupadd -g 131 cddisk useradd -u 119 -g 131 cddisk
10.2.5. Удалите лишние конфигурационные файлы
rm -f /etc/supervisord.d/{cddisk-processing,cddisk-searchapi,cddisk-ssoapi,cddisk-api}.ini
10.2.6. Отредактируйте файл /etc/supervisord.d/cddisk.ini
Приведите к виду:
[group:cddisk] programs=filestorage,registry
10.2.7. Отредактируйте файл /opt/r7-office/Service.Registry/appsettings.json
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "Clients": [ { "id": "IFileStorageService", "host": "http://192.168.27.153:11580/" }, { "id": "IFileStorageRestService", "host": "http://192.168.27.153:11580/" }, { "id": "IFolderStorageRestService", "host": "http://192.168.27.153:11580/" }, { "id": "ITcpFolderStorageService", "Address": "192.168.27.153", "Port": "11581" }, { "id": "ITcpFileStorageService", "Address": "192.168.27.153", "Port": "11581" }, { "id": "ISearchService", "host": "http://192.168.26.187:2664" }, { "id": "ISearchService", "host": "http://192.168.26.36:2664" } ], "ServiceRegistry": { "Host": "http://192.168.27.153:7777" } }
Где:
192.168.27.153— адрес текущего сервера;192.168.26.187и192.168.26.36— адреса нод Search.
10.2.8. Отредактируйте файл /opt/r7-office/FileStorage/appsettings.json
Укажите адрес текущего сервера:
"FileStorage": { "Host": "http://192.168.27.153:11580" }
10.2.9. Повторите действия для других нод Registry+filestorage
11. Проверка работы сервиса
Перейдите по DNS имени внешнего Nginx (настройка производилась в пункте 6), используя имя cddisk.test3.s7-office.site.
По умолчанию логин и пароль superadmin.
Перейдите по ссылкам из стартовой страницы для проверки работы приложения.








