Содержание
- 0. Технические требования
- 1. Архитектура
- 2. Установка NFS сервера
- 3. Роль PostgreSQL. Общая настройка
- 4. Роль PostgreSQL. Настройка Master
- 5. Роль PostgreSQL. Настройка Slave (опционально)
- 6. Роль Сервера документов (DS)
- 6.1. Установка
- 6.1.1. Установите необходимые сервисы
- 6.1.2. После этого отредактируйте конфигурационный файл NGINX /etc/nginx/nginx.conf, чтобы он выглядел следующим образом
- 6.1.3. Запустите и добавьте в автозагрузку
- 6.1.4. Инициализируйте базу данных
- 6.1.5. Откройте конфигурационный файл pg_hba.conf
- 6.1.6. Запустите PostgreSQL
- 6.1.7. Создайте БД и пользователя
- 6.1.8. Установка Сервера документов
- 6.2. Перевести DS на HTTPS возможно по следующей инструкции
- 6.1. Установка
- 7. Роль Р7 Диск
- 7.1. Скачайте архив Р7 Диск для установки и положите его на ВМ
- 7.2. Зайдите в директорию с архивом
- 7.3. Распакуйте архив
- 7.4. Установка
- 7.4.1. Для SSL инсталляции
- 7.4.2. Добавьте права на исполнение скрипту
- 7.4.3. Запустите установку
- 7.4.3.1. В процессе установки
- 7.4.3.1.1. Чистая установка
- 7.4.3.1.2. Установка СУБД
- 7.4.3.1.3. Установка Сервера Документов
- 7.4.3.1.3.1. Укажите адрес сервера документов, установленного ранее
- 7.4.3.1.3.2. JWT Key Document Server
- 7.4.3.1.4. Установка api и web диска
- 7.4.3.1.4.1. Тип СУБД Р7 Диск
- 7.4.3.1.4.2. Создание БД
- 7.4.3.1.4.3. Хост СУБД
- 7.4.3.1.4.4. Порт СУБД
- 7.4.3.1.4.5. Пользователь с правами БД
- 7.4.3.1.4.6. Пароль пользователя
- 7.4.3.1.5. coremachinkey от Корпоративного сервера 2019
- 7.4.3.1.6. Настройка HTTPS
- 7.4.3.1.7. Укажите домен
- 7.4.3.1.8. Префиксы для модулей
- 7.4.3.1.9. Остальные префиксы укажите по аналогии и укажите в DNS необходимые записи по префиксам
- 7.4.3.1.10. Перезагрузите систему
- 7.4.3.1. В процессе установки
- 7.6. Интеграция Корпоративного сервера 2024 с вынесенным сервером документов
- 7.6.1. На сервере с БД (роль PostgreSQL) (пункт 3) выведите информацию
- 7.6.2. Перезапустите cddisk
- 7.6.3. С версии 2025.4.6.16449 Корпоративного сервера потребуется внести правки в NGINX в конфигурации на сервере с ролью «Р7 Диск»
- 7.6.4. В файле /etc/hosts вынесенного Сервера документов укажите IP-адрес для Р7 Диска и ДС
- 7.6.5. В файле /etc/hosts на сервере Р7 Диск удалите остальные упоминания ds и оставьте одно значение
- 7.6.6. Перезапустите сервис ДС (на вынесенном сервере документов) и проверьте статусы сервисов
- 7.6.7. Перезапустите сервисы на сервере Р7 Диск
- 7.6.8. Проверьте работу сервера документов
- 8. Роль Поиска
- 8.1. Установите дополнительные пакеты
- 8.2. Заархивируйте конфигурационные файлы на ВМ с ролью Р7 Диск
- 8.3. Распакуйте архив на ВМ с ролью Поиска
- 8.4. Отредактируйте конфигурационный файл supervisor
- 8.5. Отредактируйте конфигурационный файл для обращения сервисов к сервису поиска на ВМ с ролью Р7 Диск
- 8.6. Проверьте работу поиска
- 9. Подключение сетевых каталогов NFS
Для установки потребуется 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-----
Где:
Основной сертификат — your_domain_name.crt
Промежуточный сертификат — DigiCertCA.crt
Корневой сертификат — TrustedRoot.crt
0. Технические требования
- 6 Виртуальных машин (без slave и файлового сервера — 4);
- Для сервера NFS дополнительно 3 диска (для Р7 Диск, для Сервера документов, для Сервера поиска);
- Для тестирования можно использовать виртуальные машины со следующими характеристиками:
- От 2 CPU;
- От 4 ГБ RAM (для ролей Поиска и Р7 Диска рекомендуем использовать от 8 ГБ);
- От 20 ГБ свободного пространства на диске;
- Более конкретные данные рассчитываются по обращению в ТП;
- Отключение или перевод SELinux в режим
permissiveдля корректной работы сервисов.
В состав дистрибутива Корпоративный сервер 2024 не включён модуль Р7 Графика. Для установки модуля Р7 Графика необходимо воспользоваться инструкциями, опубликованными в разделе: Р7 Графика > Установка ↗.
1. Архитектура
1.1. Схема

1.2. Описание
1.2.1. Роль Р7 Диск
Фронт и бэкенд сервиса Р7 Диска, модули Р7 Диск, Р7 Почта, Р7 Управление, Р7 Календарь и т. д. Хранение и обработка пользовательских сессий и файлов.
1.2.2. Роль PostgreSQL
Хранение информации о пользователях, файлах, ролях, событиях и т. п. Критически важная роль для работы продукта.
1.2.3. Роль Поиска
Отвечает за поиск файлов и писем в продукте Р7 Диск, крайне требователен к ресурсам сервера. Чем больше данных и чаще ведётся поиск, тем больше требуется ресурсов.
1.2.4. Роль NFS-сервера
Является файловым хранилищем пользовательских файлов и индексов Р7 Диск и сервиса Поиска, а также кэша и лицензии Сервера документов.
1.2.5. Роль Сервера документов
Отвечает за функционал редактирования документов.
2. Установка NFS сервера
Рассмотрим пример простого NFS-хранилища на РЕД ОС 8.
Также файловый сервер возможно заменить монтированием дополнительных дисков на ВМ.
При включённой службе firewalld необходимо выполнить настройку для nfs.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=nfs # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
2.1. Установите пакеты
sudo dnf install nfs-utils nfs4-acl-tools -y
2.2. Запустите сервис
sudo systemctl enable nfs-server --now
2.3. Создайте директории
В эти директории рекомендуется примонтировать отдельные диски для каждого сервиса удобным вам способом.
# для сервера документов mkdir -p /mnt/ds/cache mkdir /mnt/ds/license # для сервиса поиска mkdir /mnt/search # для Р7 Диск mkdir /mnt/disk
2.3.1. Как примонтировать диск в ОС
2.3.1.1. Добавьте к ВМ новый диск доступным способом
2.3.1.2. Найдите его обозначение
fdisk -l
Вывод:

В нашем примере 3 новых диска:
/dev/sdb/dev/sdc/dev/sdd
2.3.1.3. Создайте простым способом раздел
Далее приведён пример команд для создания раздела и его монтирования:
fdisk /dev/sdb
Далее наберите один раз n и Enter до появления строки:
Создан новый раздел 1 с типом ‘Linux’ и размером 5 GiB.
Далее введите w и нажмите Enter:

Создан раздел /dev/sdb1, с которым далее будет выполняться работа.
2.3.1.4. Отформатируйте в ext4
mkfs.ext4 /dev/sdb1
Вывод:

Запомните UUID.
2.3.1.5. Добавьте запись в fstab и смонтируйте раздел
Откройте на редактирование:
nano /etc/fstab
Добавьте запись следующего вида:
UUID="79af1b76-ceec-4846-81f3-1580dff3beb3" /mnt/ds ext4 defaults 0 2

Где:
UUID="79af1b76-ceec-4846-81f3-1580dff3beb3"— ID файловой системы диска/dev/sdb1;/mnt/ds— куда монтировать раздел;ext4— тип файловой системы;defaults— опции монтирования;0— индикатор резервного копирования (как правило, указывается0);2— порядок проверки раздела (0— не проверять,1— устанавливается для корня,2— для остальных разделов).
После монтирования в /mnt/ds повторите команды создания каталогов в этой директории:
mkdir /mnt/ds/cache mkdir /mnt/ds/license
Повторяем процедуру с остальными дисками, монтируя в оставшиеся каталоги.
Конечный результат:

2.3.1.6. Выполните команду монтирования
mount -a
Проверьте:
df -hT

Также рекомендуем перезагрузить ВМ и повторно проверить состояние монтирования.
2.4. Добавьте файл лицензии
По данному пути добавьте файл лицензии с именно таким именем license.lic для Сервера документов:
/mnt/ds/license/license.lic
3. Роль PostgreSQL. Общая настройка
При включённой службе firewalld необходимо выполнить настройку для PostgreSQL.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=postgresql # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
Рекомендуем монтировать дополнительный диск на серверы СУБД в директорию /var/lib/pgsql (путь на момент написания статьи) до инсталляции, чтобы данная файловая система не была загружена процессами ОС. Можно воспользоваться пунктом 2.3.1 данной инструкции.
3.1. Установите PostgreSQL
sudo dnf install postgresql-server -y
3.2. Инициализируйте БД
/usr/bin/postgresql-setup --initdb --unit postgresql
3.3. Добавьте сервис в автозагрузку
sudo systemctl enable postgresql
3.4. Приведите файл pg_hba.conf к виду
Находится по пути:
/var/lib/pgsql/data/pg_hba.conf
Приведите к виду:
# "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 # Указать сервер Р7 Диска host cddisk cddisk 192.168.27.52/32 md5 host pagesdb cddisk 192.168.27.52/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5
Где:
host cddisk cddisk 192.168.27.52/32 md5— строка предоставляет пользователюcddiskдоступ к БДcddiskс IP-адреса192.168.27.52по методуmd5;host pagesdb cddisk 192.168.27.52/32 md5— строка предоставляет пользователюcddiskдоступ к БДpagesdbс IP-адреса192.168.27.52по методуmd5.
3.5. Отредактируйте файл postgresql.conf
Путь до файла:
/var/lib/pgsql/data/postgresql.conf
Приведите параметры к следующему виду и раскомментируйте их:
listen_addresses = 'localhost, 192.168.27.211' port = 5432
Где:
localhost,192.168.27.211— интерфейсы, которые должен слушать PostgreSQL на ВМ, где он установлен. Можно также указать*, чтобы слушались все интерфейсы.
3.6. Перезапустите сервис
sudo systemctl restart postgresql
Проверьте:
sudo systemctl status postgresql
3.7. Проверьте, что СУБД слушает нужные интерфейсы
ss -tln | grep 5432
4. Роль PostgreSQL. Настройка Master
4.1. Создайте пользователя и БД
sudo -i -u postgres psql -c "CREATE USER cddisk WITH password 'cddisk';" sudo -i -u postgres psql -c "CREATE DATABASE cddisk OWNER cddisk;" sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE cddisk TO cddisk;" sudo -i -u postgres psql -c "CREATE DATABASE pagesdb OWNER cddisk;" sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE pagesdb TO cddisk;"
Где:
cddisk— имя БД для работы Р7 Диск;cddisk— пользователь с доступом к БД cddisk;cddisk— пароль пользователя cddisk;pagesdb— имя базы данных для модуля Р7 Страницы.
4.2. Создайте пользователя для репликации
su - postgres createuser --replication -P repluser
Запросит ввод пароля для новой роли, сохраните его.

4.3. Отредактируйте конфиг postgresql.conf
/var/lib/pgsql/data/postgresql.conf
Приведите следующие параметры к виду:
wal_level = replica max_wal_senders = 2 max_replication_slots = 2 hot_standby = on hot_standby_feedback = on
Где:
wal_level— указывает, сколько информации записывается в WAL (журнал операций, который используется для репликации);max_wal_senders— лимит одновременных подключений для передачи логов, на каждый сервер Slave требуется 2 подключения;max_replication_slots— максимальное число слотов репликации;hot_standby— определяет, можно или нет подключаться к PostgreSQL для выполнения запросов в процессе восстановления;hot_standby_feedback— определяет, будет или нет сервер Slave сообщать мастеру о запросах, которые он выполняет.
4.4. Отредактируйте файл pg_hba.conf
Находится по пути:
/var/lib/pgsql/data/pg_hba.conf
Добавьте строки в конце:
host replication repluser 127.0.0.1/32 md5 host replication repluser 192.168.27.211/32 md5 host replication repluser 192.168.27.137/32 md5
- Данной настройкой Вы разрешаете подключение к базе данных
replicationпользователюrepluserс локального сервера (localhostи192.168.27.211) и сервера192.168.27.137(slave).
4.5. Перезапустите службу postgresql
systemctl restart postgresql
5. Роль PostgreSQL. Настройка Slave (опционально)
5.1. Остановите PostgreSQL
sudo systemctl stop postgresql
5.2. Сделайте бэкап
sudo tar -czvf /tmp/psql.tar.gz /var/lib/pgsql/data
5.3. Удалите содержимое
sudo rm -rf /var/lib/pgsql/data/*
5.4. Выполните репликацию с Master на Slave
su - postgres -c "pg_basebackup --host=192.168.27.211 --username=repluser --pgdata=/var/lib/pgsql/data --wal-method=stream --write-recovery-conf"
Где:
192.168.27.211— IP-адрес мастера;/var/lib/pgsql/data— путь до каталога с данными;repluser— пользователь, созданный для репликации наMaster.
После ввода команды система запросит пароль для созданной ранее учётной записи repluser — введите его.
Начнётся процесс клонирования данных.
5.5. Запустите PostgreSQL
sudo systemctl start postgresql
5.6. Проверьте репликацию
5.6.1. Посмотрите статус
Статус работы репликации можете посмотреть следующими командами.
5.6.1.1. На Master
sudo -u postgres psql -x -c 'select * from pg_stat_replication;'

5.6.1.2. На Slave
sudo -u postgres psql -x -c 'select * from pg_stat_wal_receiver;'

5.6.2. Создайте тестовую базу на Master
5.6.2.1. На мастере зайдите в командную оболочку Postgres
su - postgres -c "psql"
5.6.2.2. Создайте новую базу данных
CREATE DATABASE repltest ENCODING='UTF8';
5.6.3. На Slave посмотрите список баз
5.6.3.1. Выполните команду
sudo -u postgres psql -c '\l'
5.6.3.2. Убедитесь, что в списке отображается база данных, созданная на Master-сервере

5.6.4. Настройка завершена
6. Роль Сервера документов (DS)
При включённой службе firewalld необходимо выполнить настройку для DS.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=http # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
6.1. Установка
Актуальная инструкция на сайте ↗.
6.1.1. Установите необходимые сервисы
sudo dnf install nginx postgresql postgresql-server redis 'rabbitmq-server-4.*' -y
6.1.2. После этого отредактируйте конфигурационный файл NGINX /etc/nginx/nginx.conf, чтобы он выглядел следующим образом
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
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;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}6.1.3. Запустите и добавьте в автозагрузку
sudo systemctl enable redis rabbitmq-server nginx sudo systemctl start redis rabbitmq-server nginx
6.1.4. Инициализируйте базу данных
sudo service postgresql initdb
6.1.5. Откройте конфигурационный файл pg_hba.conf
Путь до файла:
/var/lib/pgsql/data/pg_hba.conf
Приведите имеющиеся строки к виду:
host all all 127.0.0.1/32 trust host all all ::1/128 trust
6.1.6. Запустите PostgreSQL
sudo systemctl enable --now postgresql
6.1.7. Создайте БД и пользователя
При необходимости БД можно вынести на имеющийся Master-сервер, выполнив соответствующие настройки и предоставив необходимые доступы:
sudo -u postgres psql -c "CREATE USER r7office WITH password 'r7office';" sudo -u postgres psql -c "CREATE DATABASE r7office OWNER r7office;" sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE r7office TO r7office;"
6.1.8. Установка Сервера документов
6.1.8.1. Подключите репозиторий
Откройте файл на редактирование:
sudo nano /etc/yum.repos.d/r7server.repo
Добавьте следующий текст:
[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
6.1.8.2. Установите пакет
sudo yum makecache sudo dnf install r7-office-documentserver-ee -y systemctl start ds-docservice.service ds-converter.service ds-metrics.service systemctl enable ds-docservice.service ds-converter.service ds-metrics.service
6.1.8.3. Запустите скрипт настройки DS
sudo bash documentserver-configure.sh
Будут запрошены данные:
6.1.8.3.1. Для PostgreSQL
- Host:
localhost - Database:
r7office - User:
r7office - Password:
r7office
Где:
host— IP-адрес сервера с PostgreSQL или его DNS-имя (в данном примереlocalhost);Database— имя базы данных;User— имя пользователя;Password— пароль пользователя.
6.1.8.3.2. Для AMQP
- Host:
localhost - User:
guest - Password:
guest
Где:
host— IP-адрес сервера с RabbitMQ или его DNS-имя (в данном примереlocalhost);user— пользователь для подключения;password— пароль пользователя.
6.1.8.4. Выведите информацию по сгенерированным данным для подключения
documentserver-jwt-status.sh
6.2. Перевести DS на HTTPS возможно по следующей инструкции
При использовании самоподписного сертификата или Let’s Encrypt воспользуйтесь инструкцией:
7. Роль Р7 Диск
Актуальная инструкция на сайте ↗.
При включённой службе firewalld необходимо выполнить настройку для Р7 Диск:
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=http # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
7.1. Скачайте архив Р7 Диск для установки и положите его на ВМ
Рекомендуем, для корректной установки, архив разместить в директории, отличной от /root, например в /mnt или /tmp.
7.2. Зайдите в директорию с архивом
cd /mnt
7.3. Распакуйте архив
unzip RedOS_*.zip
7.4. Установка
7.4.1. Для SSL инсталляции
Если требуется поддержка HTTPS, перед установкой скопируйте crt и key файлы в папку sslcert.
Имя файла должно содержать название домена и расширение.
Обязательно в .crt указывать всю цепочку сертификатов, домен, промежуточные и корневой.
Например, для домена r7.ru имена файлов должны быть r7.ru.crt и r7.ru.key.
7.4.2. Добавьте права на исполнение скрипту
chmod +x online_installer.sh
7.4.3. Запустите установку
sudo bash ./online_installer.sh
На запрос пароля для sudo введите его.
7.4.3.1. В процессе установки
7.4.3.1.1. Чистая установка
Если требуется выполнить чистую установку (при этом будут удалены имеющаяся установка Р7 Диск и зависимости):
- Выберите Да:

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

7.4.3.1.3. Установка Сервера Документов
Если версия устанавливаемого Корпоративного сервера 2024 ниже 14000, то для корректной установки роли Р7 Диск требуется Сервер документов. В данном случае выберите «Нет».
Установка Сервера документов:
- Выберите Нет:

7.4.3.1.3.1. Укажите адрес сервера документов, установленного ранее

7.4.3.1.3.2. JWT Key Document Server
Укажите секрет установленного Document Server.
- Значение
jwt-secretбыло сохранено в п. 6.1.8.4:

7.4.3.1.4. Установка api и web диска
Основное приложение Р7 Диска и веб-часть сайта.

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

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

Создание БД не требуется.
- Выберите Нет.
7.4.3.1.4.3. Хост СУБД

СУБД установлена отдельно.
- Укажите IP-адрес или имя хоста.
7.4.3.1.4.4. Порт СУБД
По умолчанию используется порт 5432. Если вы настроили другой порт, укажите его:

7.4.3.1.4.5. Пользователь с правами БД

7.4.3.1.4.6. Пароль пользователя

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

7.4.3.1.6. Настройка HTTPS

- Выберите Да.
7.4.3.1.7. Укажите домен

Необходимо указать домен, в котором у Вас созданы записи.
Например, при домене r7.ru необходимо создать запись disk.r7.ru. Пример записи в Selectel ниже:

В значении укажите именно r7.ru, а не созданную A-запись.
7.4.3.1.8. Префиксы для модулей
Пример для Р7 Диск:

Укажите имя, которое будет использоваться в браузере для веб-интерфейса Р7 Диск.
Например, если Вы хотите, чтобы открылся Р7 Диск по адресу disk.r7.ru, то указать нужно именно disk, без указания домена.
Также необходимо создать соответствующую A-запись в DNS.
Пример записи в Selectel ниже:

7.4.3.1.9. Остальные префиксы укажите по аналогии и укажите в DNS необходимые записи по префиксам
7.4.3.1.10. Перезагрузите систему
Для корректной работы Р7 Диска требуется перезагрузка.

- Введите «Да».
Без перезагрузки «Р7 Диск» работать не будет.
После перезапуска также проверьте конфигурацию /etc/nginx/nginx.conf:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
map $http_x_forwarded_proto $the_scheme {
default $scheme;
"https" "https";
}
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;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}и выполните команды:
sudo sed -i 's/proxy_set_header Connection \$proxy_connection;/proxy_set_header Connection "";/g' /etc/nginx/sites-available/* systemctl restart nginx
7.6. Интеграция Корпоративного сервера 2024 с вынесенным сервером документов
Актуальная инструкция по ссылке ↗.
7.6.1. На сервере с БД (роль PostgreSQL) (пункт 3) выведите информацию
sudo -u postgres psql -d cddisk -c "SELECT * FROM public.\"MessageSettings\" WHERE \"Key\" = 'documentServerUrl';" sudo -u postgres psql -d cddisk -c "SELECT * FROM public.\"MessageSettings\" WHERE \"Key\" = 'apiUrlInternal';" sudo -u postgres psql -d cddisk -c "SELECT * FROM public.\"MessageSettings\" WHERE \"Key\" = 'files.docservice.secret';" # значение из 6.1.8.4 files.docservice.secret
7.6.1.1. Обновите секрет (если требуется) и адрес Сервера документов в БД
sudo -u postgres psql -d cddisk -c "UPDATE public.\"MessageSettings\" SET \"Value\"='https://ds.r7.ru' WHERE \"Key\" = 'documentServerUrl';" sudo -u postgres psql -d cddisk -c "UPDATE public.\"MessageSettings\" SET \"Value\"='https://cddisk.r7.ru' WHERE \"Key\" = 'apiUrlInternal';"
- Указав вместо
https://ds.r7.ruадрес вынесенного сервера документов (если адрес вынесенного ДС одноимённый — нет необходимости менять), для примера, указан в запросе —Value"='https://ds.r7.ru' - Указав вместо
https://cddisk.r7.ruссылку на адрес основного приложения Корпоративного сервера.
7.6.2. Перезапустите cddisk
supervisorctl restart all
7.6.3. С версии 2025.4.6.16449 Корпоративного сервера потребуется внести правки в NGINX в конфигурации на сервере с ролью «Р7 Диск»
В конфигурационных файлах:
/etc/nginx/sites-available/cddisk/etc/nginx/sites-available/projects/etc/nginx/sites-available/cdmail
location /api/v1/Documents/UploadCallback {
proxy_set_header host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-forward-for $proxy_add_x_forwarded_for;
proxy_set_header X-Module Disk;
proxy_set_header X-Forwarded-Proto $scheme;
allow 127.0.0.1;
allow 192.168.27.1; # добавьте разрешение на IP-адрес вынесенного Сервера документов
deny all;
proxy_pass http://localhost:38033/api/v1/Documents/UploadCallback;
}
location /api/v1/Link/ds {
proxy_set_header host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-forward-for $proxy_add_x_forwarded_for;
proxy_set_header X-Module Disk;
proxy_set_header X-Forwarded-Proto $scheme;
allow 127.0.0.1;
allow 192.168.27.1; # добавьте разрешение на IP-адрес вынесенного Сервера документов
deny all;
proxy_pass http://localhost:38033/api/v1/Link/ds;
}Где:
192.168.27.1— IP-адрес сервера DS.
7.6.4. В файле /etc/hosts вынесенного Сервера документов укажите IP-адрес для Р7 Диска и ДС
Например:
192.168.27.2 cddisk.r7.ru 127.0.0.1 ds.r7.ru
7.6.5. В файле /etc/hosts на сервере Р7 Диск удалите остальные упоминания ds и оставьте одно значение
Укажите IP-адрес для Сервера документов, например:
192.168.27.1 ds.r7.ru
7.6.6. Перезапустите сервис ДС (на вынесенном сервере документов) и проверьте статусы сервисов
systemctl restart ds-* --all systemctl status ds-*
7.6.7. Перезапустите сервисы на сервере Р7 Диск
supervisorctl restart all
7.6.8. Проверьте работу сервера документов
Зайдите на портал Корпоративного сервера 2024 и создайте документ. Проверьте редактирование.
8. Роль Поиска
При включённой службе firewalld необходимо выполнить настройку для службы поиска.
# Открываем порт службы поиска: sudo firewall-cmd --permanent --zone=public --add-port=2664/tcp # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
8.1. Установите дополнительные пакеты
Для версии 14752 и выше выполните установку следующих пакетов:
dnf install -y aspnetcore-targeting-pack-6.0 aspnetcore-targeting-pack-6.0 dotnet-host-8.0.15 dotnet-apphost-pack-6.0 dotnet-hostfxr-6.0 dotnet-targeting-pack-6.0 dotnet-templates-6.0 dotnet-runtime-6.0 dotnet-sdk-6.0 netstandard-targeting-pack-2.1 supervisor
Для версий ниже:
dnf install -y aspnetcore-runtime-3.1 aspnetcore-targeting-pack-3.1 dotnet-apphost-pack-3.1 dotnet-host dotnet-hostfxr-3.1 dotnet-runtime-3.1 dotnet-sdk-3.1 dotnet-targeting-pack-3.1 dotnet-templates-3.1 netstandard-targeting-pack-2.1 supervisor
8.2. Заархивируйте конфигурационные файлы на ВМ с ролью Р7 Диск
tar czvf search.tar.gz --selinux /opt/r7-office/SearchApi /var/log/r7-office/CDDisk/SearchApi /etc/supervisord.d/ /var/r7-office/searchindex
8.2.1. Перенесите файл удобным способом
Например, через scp:
scp search.tar.gz ipВмПоиска:/root/
8.2.2. Узнайте uid/gid пользователя cddisk
id cddisk
Вывод:
uid=986(cddisk) gid=983(cddisk) группы=983(cddisk)
8.3. Распакуйте архив на ВМ с ролью Поиска
8.3.1. Создайте пользователя cddisk
# Создаём группу cddisk groupadd -g 983 cddisk # Создаём пользователя cddisk и добавляем в группу useradd -u 986 -g 983 cddisk
8.3.2. Распакуйте архив
tar xzvf search.tar.gz --selinux -C /
8.4. Отредактируйте конфигурационный файл supervisor
8.4.1. Удалите лишние файлы
cd /etc/supervisord.d/ && rm cddisk-api.ini cddisk-filestorage.ini cddisk-registry.ini cddisk-ssoapi.ini cddisk-processing.ini -f
8.4.2. Измените файл
Файл по пути:
/etc/supervisord.d/cddisk.ini
Приведите к виду:
[group:cddisk] programs=searchapi
8.4.3. Перезапустите службу
systemctl restart supervisord
8.4.4. Проверьте службу поиска
supervisorctl status all
8.5. Отредактируйте конфигурационный файл для обращения сервисов к сервису поиска на ВМ с ролью Р7 Диск
8.5.1. Укажите IP-адрес ВМ с сервисом Поиска в конфигурационном файле
/opt/r7-office/Service.Registry/appsettings.json

Также повторите действия с файлами ниже (для версий ниже 2.0.15.843):
/opt/r7-office/Api/appsettings.json /opt/r7-office/Processing/appsettings.json
8.5.2. Удалите конфигурационный файл
rm /etc/supervisord.d/cddisk-searchapi.ini
Откройте конфигурационный файл на редактирование:
nano /etc/supervisord.d/cddisk.ini
Приведите к виду:
[group:cddisk] programs=api,filestorage,processing,registry,apisso
8.5.3. Перезапустите supervisor
systemctl restart supervisord supervisorctl restart all
8.6. Проверьте работу поиска
8.6.1. Введите в модуле Диск, в строке поиска, символы из названия документа
Для выдачи результата понадобится время, т.к. сервис только начал работу.

8.6.2. Проверьте дополнительно трафик
На сервере Поиска включите tcpdump, чтобы убедиться, идут ли запросы во время заполнения строки поиска:
tcpdump port 2664
Вывод:

9. Подключение сетевых каталогов NFS
9.1. На сервере с ролью DS (сервер документов)
9.1.1. Узнайте uid/gid пользователя ds
id ds
Вывод:
uid=987(ds) gid=984(ds) группы=984(ds)
9.2. На сервере с ролью Р7 Диск и Поиска
9.2.1. Узнайте uid/gid пользователя cddisk
id cddisk
Вывод:
uid=986(cddisk) gid=983(cddisk) группы=983(cddisk)
Совпадение UID/GID пользователей ds и cddisk на разных серверах недопустимо. Поскольку NFS использует числовые идентификаторы, совпадение приведёт к конфликту прав доступа к общим директориям. При обнаружении одинаковых ID необходимо изменить значения для пользователя ds на сервере документов.
Проверьте доступность нового ID (например, 982):
grep 982 /etc/passwd /etc/group
(Пустой вывод означает, что ID свободен).
Остановите сервисы:
systemctl stop ds-converter ds-docservice ds-metrics
Измените идентификаторы пользователя и группы:
groupmod -g 982 ds usermod -u 982 -g 982 ds
Обновите права владельца на существующие файлы (укажите старый конфликтующий ID вместо 983):
find /var /etc /opt -uid 983 -exec chown ds {} +
find /var /etc /opt -gid 983 -exec chgrp ds {} +Перезагрузите NGINX и запустите сервисы:
systemctl restart nginx systemctl start ds-converter ds-docservice ds-metrics
9.3. На сервере с ролью NFS
9.3.1. Создайте пользователя ds
# Создаём группу ds groupadd -g 984 ds # Создаём пользователя ds и добавляем в группу useradd -u 987 -g 984 ds
Где:
984—gidиз п. 9.1.1;987—uidиз п. 9.1.1.
9.3.2. Создайте пользователя cddisk
# Создаём группу cddisk groupadd -g 983 cddisk # Создаём пользователя cddisk и добавляем в группу useradd -u 986 -g 983 cddisk
Где:
983—gidиз п. 9.2.1;986—uidиз п. 9.2.1.
9.3.3. Обновите права на каталог
chown ds:ds /mnt/ds -R chown cddisk:cddisk /mnt/search -R chown cddisk:cddisk /mnt/disk -R
9.4. Отредактируйте файл
sudo nano /etc/exports
9.4.1. Добавьте строки
# Сетевой каталог для Сервера документов /mnt/ds 192.168.27.1/32(rw,nohide,all_squash,anonuid=984,anongid=987,no_subtree_check) # Сетевой каталог для сервера Р7 Диск /mnt/disk 192.168.27.2/32(rw,nohide,all_squash,anonuid=983,anongid=986,no_subtree_check) # Сетевой каталог для сервера с сервисом Поиска /mnt/search 192.168.27.3/32(rw,nohide,all_squash,anonuid=983,anongid=986,no_subtree_check)
Где:
192.168.27.1— IP-адрес сервера DS;192.168.27.2— IP-адрес сервера с Р7 Диск;192.168.27.3— IP-адрес сервера с сервисом Поиска.anonuidиanongid— UID и GID пользователя соответственно (например, для сервера с DS 984 и 987, для сервера с Р7 Диск 983 и 986).
9.4.2. Включите сетевые директории
sudo exportfs -ra
9.5. Подключение на сервере DS
9.5.1. Остановите сервис
systemctl stop ds-converter ds-docservice ds-metrics
9.5.2. Пропишите в /etc/fstab сетевой каталог
192.168.27.4:/mnt/ds/cache /var/lib/r7-office/documentserver/App_Data/cache nfs defaults 0 2 192.168.27.4:/mnt/ds/license /var/www/r7-office/Data nfs defaults 0 2
Где:
192.168.27.4— IP-адрес NFS-сервера;/mnt/ds,/mnt/ds/license— общие каталоги на NFS-сервере;/var/lib/r7-office/documentserver/App_Data/cache,/var/www/r7-office/Data— пути монтирования на сервере с DS.
9.5.3. Обновите конфигурации служб
systemctl daemon-reload
9.5.4. Скопируйте файлы
cd /var/www/r7-office/Data mkdir /tmp/backup_data \cp -rf ./ /tmp/backup_data/
9.5.5. Монтируйте и копируйте файлы
cd /tmp/backup_data mount -a \cp -rf ./ /var/www/r7-office/Data/
9.5.6. Установите утилиту для монтирования NFS
sudo dnf install nfs-utils
9.5.7. Монтируйте
mount -a
9.5.8. Запустите сервисы
systemctl start ds-converter ds-docservice ds-metrics
9.5.9. Проверьте работу редактирования
Убедитесь, что файлы создаются на вашем NFS-сервере:

9.6. Подключение на сервере с Р7 Диск
9.6.1. Остановите сервисы
supervisorctl stop all
9.6.2. Установите утилиту для монтирования NFS
sudo dnf install nfs-utils
9.6.3. Пропишите в /etc/fstab
192.168.27.4:/mnt/disk /var/r7-office nfs defaults 0 2
Где:
192.168.27.4— IP-адрес сервера NFS;/mnt/disk— расшаренный каталог на сервере NFS;/var/r7-office— путь монтирования на сервере с Р7 Диск.
9.6.4. Обновите конфигурации служб
systemctl daemon-reload
9.6.5. Скопируйте файлы
cd /var/r7-office mkdir /tmp/backup_cddisk cp -pr ./ /tmp/backup_cddisk
9.6.6. Монтируйте и копируйте файлы
cd /tmp/backup_cddisk mount -a cp -pr ./ /var/r7-office
9.6.7. Запустите сервисы
supervisorctl start all
9.6.8. Проверьте работу редактирования
9.7. Подключение на сервере Поиска
9.7.1. Остановите сервисы
supervisorctl stop all
9.7.2. Установите утилиту для монтирования NFS
sudo dnf install nfs-utils
9.7.3. Пропишите в /etc/fstab
192.168.27.4:/mnt/search /var/r7-office nfs defaults 0 2
Где:
192.168.27.4— IP-адрес сервера NFS;/mnt/search— расшаренный каталог на сервере NFS;/var/r7-office— путь монтирования на сервере Поиска.
9.7.4. Обновите конфигурации служб
systemctl daemon-reload
9.7.5. Скопируйте файлы
cd /var/r7-office mkdir /tmp/backup_search cp -pr ./ /tmp/backup_search
9.7.6. Монтируйте и копируйте файлы
cd /tmp/backup_search mount -a cp -pr ./ /var/r7-office
9.7.7. Запустите сервисы
supervisorctl start all













