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

Установка Middle архитектуры Корпоративного сервера 2024 на РЕД ОС

Обновлено: 11.11.26

Инструкция актуальна для версии продукта: 2026.4.14.17766

Обратите внимание

Для установки потребуется 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 для корректной работы сервисов.
Установка Middle архитектуры Корпоративного сервера 2024 на РЕД ОСВажно

В состав дистрибутива Корпоративный сервер 2024 не включён модуль Р7 Графика. Для установки модуля Р7 Графика необходимо воспользоваться инструкциями, опубликованными в разделе: Р7 Графика > Установка ↗.

1. Архитектура

1.1. Схема

Схема взаимодействия компонентов Корпоративного сервера в архитектуре Middle

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

Вывод:

Вывод команды fdisk -l с перечнем дисков

В нашем примере 3 новых диска:

  • /dev/sdb
  • /dev/sdc
  • /dev/sdd
2.3.1.3. Создайте простым способом раздел

Далее приведён пример команд для создания раздела и его монтирования:

fdisk /dev/sdb

Далее наберите один раз n и Enter до появления строки:

Создан новый раздел 1 с типом ‘Linux’ и размером 5 GiB.

Далее введите w и нажмите Enter:

Вывод процесса создания раздела на диске в fdisk
Уточнение

Создан раздел /dev/sdb1, с которым далее будет выполняться работа.

2.3.1.4. Отформатируйте в ext4
mkfs.ext4 /dev/sdb1

Вывод:

Вывод команды mkfs.ext4 с UUID созданной файловой системы

Запомните UUID.

2.3.1.5. Добавьте запись в fstab и смонтируйте раздел

Откройте на редактирование:

nano /etc/fstab

Добавьте запись следующего вида:

UUID="79af1b76-ceec-4846-81f3-1580dff3beb3" /mnt/ds ext4 defaults 0 2
Пример записи монтирования раздела в файле /etc/fstab

Где:

  • 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
Вывод команды 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;'
Вывод параметров репликации pg_stat_replication на Master-сервере
5.6.1.2. На Slave
sudo -u postgres psql -x -c 'select * from pg_stat_wal_receiver;'
Вывод параметров репликации pg_stat_wal_receiver на Slave-сервере

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-сервере
Вывод списка баз данных PostgreSQL на сервере Slave

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 Диск и зависимости):

  • Выберите Да:
Окно запроса «Make clean install?»
7.4.3.1.2. Установка СУБД

PostgreSQL будет на другой ВМ:

  • Выберите Нет:
Окно запроса «Install postgresql server on local pc?»
7.4.3.1.3. Установка Сервера Документов
Обратите внимание

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

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

  • Выберите Нет:
Окно запроса «Install Document Server?»
7.4.3.1.3.1. Укажите адрес сервера документов, установленного ранее
Окно Document Server URL
7.4.3.1.3.2. JWT Key Document Server

Укажите секрет установленного Document Server.

  • Значение jwt-secret было сохранено в п. 6.1.8.4:
Окно ввода секрета Document Server secret
7.4.3.1.4. Установка api и web диска

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

Окно запроса «Install CDDisk api & web?»

Для его установки:

  • Выберите Да.
7.4.3.1.4.1. Тип СУБД Р7 Диск
Окно выбора типа базы данных
  • Выберите PostgreSQL.
7.4.3.1.4.2. Создание БД
Окно запроса «Create database?»

Создание БД не требуется.

  • Выберите Нет.
7.4.3.1.4.3. Хост СУБД
Окно Database host

СУБД установлена отдельно.

  • Укажите IP-адрес или имя хоста.
7.4.3.1.4.4. Порт СУБД

По умолчанию используется порт 5432. Если вы настроили другой порт, укажите его:

Окно Database port
7.4.3.1.4.5. Пользователь с правами БД
Окно Database user for create DB
7.4.3.1.4.6. Пароль пользователя
Окно ввода пароля пользователя базы данных
7.4.3.1.5. coremachinkey от Корпоративного сервера 2019

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

Если нет, нажмите ОК без редактирования:

Окно указания значения salt для генерации ключей
7.4.3.1.6. Настройка HTTPS
Окно запроса «Make HTTPS?»
  • Выберите Да.
7.4.3.1.7. Укажите домен
Окно Domain name

Необходимо указать домен, в котором у Вас созданы записи.

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

Пример DNS A-записи для модуля «Р7 Диск»

В значении укажите именно r7.ru, а не созданную A-запись.

7.4.3.1.8. Префиксы для модулей

Пример для Р7 Диск:

Окно Prefix name

Укажите имя, которое будет использоваться в браузере для веб-интерфейса Р7 Диск.

Например, если Вы хотите, чтобы открылся Р7 Диск по адресу disk.r7.ru, то указать нужно именно disk, без указания домена.

Также необходимо создать соответствующую A-запись в DNS.

Пример записи в Selectel ниже:

Пример DNS A-записи префикса модуля «Р7 Диск»
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
Фрагмент конфигурационного файла 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. Введите в модуле Диск, в строке поиска, символы из названия документа

Уточнение

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

Раздел «Результаты поиска» в модуле «Р7 Диск»

8.6.2. Проверьте дополнительно трафик

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

tcpdump port 2664

Вывод:

Вывод команды tcpdump при проверке сетевого трафика службы поиска

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-сервере:

Вывод команды ls -al с созданным файлом Editor.bin на 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

9.7.8. Проверьте работу поиска в модуле Диск

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое