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

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

Обновлено: 10.07.26

Инструкция актуальна для версий продукта: 2025.4.6.16449 – 2026.1.12.16832

Схема взаимодействия сервисов

 

Условия развёртки

Для всех ВМ использовался 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 High Available архитектуры на РЕД ОС 7.3Важно

В состав дистрибутива Корпоративный сервер 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
 
mkdir -p /mnt/java-maker - хранение данных, используемых модулями «Страницы» и «Формы»
 
mkdir -p /mnt/ssl - каталог для хранения сертификата и ключа вашего домена

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/

В случае если сервер не установлен перейдите к пункту 3 и после установки 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

Аналогичным образом необходимо создать пользователя cddisk, используя UID и GID, назначенные пользователю cddisk на Корпоративном сервере 2024.

Если Корпоративный сервер 2024 ещё не установлен, перейдите к пункту 5 и выполните его установку. После завершения установки определите значения UID и GID пользователя cddisk на сервере Корпоративного сервера и задайте такие же значения на сервере NFS.

Укажите права на каталоги для пользователей ds и cddisk:

chown ds:ds -R /mnt/ds/
chown cddisk:cddisk -R /mnt/disk/
chown cddisk:cddisk -R /mnt/search/
chown cddisk:cddisk -R /mnt/java-maker/
chown cddisk:cddisk -R /mnt/ssl/

Рекомендуется упростить доступ к файлам на каталог /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/java-maker 192.168.27.0/24(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check)
/mnt/ssl 192.168.27.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 на РЕД ОС ↗.

Уточнение

Корпоративный сервер — сервер приложений будет в дальнейшем трансформирован на отдельные ноды согласно схеме. Текущий сервер необходимо оставить в составе Корпоративного сервера 2024, и использовать в дальнейшем в качестве API-ноды. На данном сервере будет использоваться java-maker для работы модулей форм и страниц. При включенной службе firewalld необходимо добавить сервис и выполнить настройку для Корпоративного сервера по протоколам http/https.

5.1. Подготовка каталогов и подключение NFS-хранилища

Если Корпоративный сервер 2024 ранее не устанавливался, создайте пользователя cddisk и задайте UID и GID, как указано в пункте «2.2.1. Указание пользователя и группы на каталоги» данной инструкции.

Пример создания пользователя и группы:

groupadd -g 131 cddisk
useradd -u 119 -g 131 cddisk

Создайте каталоги:

mkdir -p /etc/nginx/ssl
mkdir -p /opt/r7-office/java-maker/uploaded-files

Добавьте следующие записи в файл /etc/fstab:

192.168.25.122:/mnt/java-maker /opt/r7-office/java-maker/uploaded-files nfs defaults 0 0
192.168.25.122:/mnt/ssl /etc/nginx/ssl nfs defaults 0 0

Примонтируйте каталоги:

mount -a
Обратите внимание

UID и GID пользователя cddisk должны совпадать на всех серверах вынесенных сервисов Корпоративного сервера 2024 и NFS-хранилище.

5.2. Добавление репозитория

5.2.1. Откройте файл на редактирование /etc/yum.repos.d/r7server.repo

5.2.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.2.3. Обновите список репозиториев с подгружаемыми данными

sudo yum makecache

5.3. Скачайте архив Р7 Диск для установки и положите его на ВМ

Рекомендуем, для корректной установки, архив разместить в директории, отличной от /root, например в /mnt или /tmp.

5.3.1. Зайдите в директорию с архивом

cd /mnt

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

unzip RedOS_*.zip

5.3.3. Выполните команду

sed -i "s/dnf install -y postgresql-client/dnf install -y postgresql/" CDDisk/install.sh

5.3.4. Настройка SSL

Перед установкой скопируйте crt и key файлы в папку sslcert.

Имя файла должно содержать название домена и расширение.

Обязательно в .crt указывать всю цепочку сертификатов, домен, промежуточные и корневой.

Например, для домена test3.s7-office.site имена файлов должны быть test3.s7-office.site.crt и test3.s7-office.site.key.

5.3.5. Добавьте права на исполнение скрипту

chmod +x online_installer.sh

5.3.6. Запустите установку

sudo bash ./online_installer.sh

На запрос пароля для sudo введите его.

5.4. В процессе установки

5.4.1. Чистая установка

Если требуется выполнить чистую установку (удалит имеющуюся инсталляцию Р7 Диск и зависимости):

  • Выберите Да:

5.4.2. Установка СУБД

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

  • Выберите Нет:

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

Сервер Документов находится на другой ВМ, то:

  • Выберите Нет.

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

Пример добавленной А записи в DNS у провайдера Selectel указан на скриншоте:

5.4.4. URL Сервера документов

Укажите URL и протокол, как в примере ниже:

https://ds-cluster.test3.s7-office.site

5.4.5. Секрет для DS и формирования JWT

Введите секрет (Набор цифр, букв и спецсимволов. Длина от 8 символов) для защищённого доступа Р7 Диска и Сервера Документов — данные из пункта 3.3.1:

5.4.6. Установка api и web диска

Основное приложения Р7 Диска и веба (статика) сайта:

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

  • Выберите Да.

5.4.7. Тип СУБД Р7 Диск

  • Выберите PostgreSQL.

5.4.8. Создание БД

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

  • Выберите Нет.

5.4.9. Хост СУБД

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

5.4.10. Порт СУБД

По умолчанию 5432 используется. Потребуется указать порт 5000 для HAproxy Пример реализации балансировщика HAproxy для архитектуры High Available ↗.

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

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

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

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

5.4.13. coremachinkey От Корпоративного сервера

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

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

Проверьте наличие сертификата и ключа в каталоге SSL из пункта 5.3.4.

  • Выберите Да.

5.4.15. Укажите домен

Пример:

test3.s7-office.site

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

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

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

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

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

5.4.17. Префикс Р7 Управление

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

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

5.4.18. Префикс Р7 Контакты

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

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

5.4.19. Префикс Р7 Проекты

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

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

5.4.20. Префикс Р7 Почта

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

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

5.4.21. Префикс Р7 Календарь

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

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

5.4.22. Префикс Сервер документов

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

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

5.4.23. Перезагрузите систему

Для корректной работы Р7 Диска, требуется перезагрузка:

  • Введите Да;
  • Введите Нет, если вам требуется выполнить дополнительные действия до перезагрузки.

Без перезагрузки Корпоративный сервер 2024 работать не будет.

5.4.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.5. Включение 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.6. Проверка работы Корпоративного сервера

Для проверки работы Корпоративного сервера временно измените запись в DNS запись ведущую на *.test3.s7-office.site не на внешний Nginx, а на только что установленный Корпоративный сервер 2024.

Перейдите по доменному имени cddisk.test3.s7-office.site и авторизуйтесь под УЗ:

superadmin\superadmin

И проверьте работоспособность портала и возможность открывать\редактировать файлы.

После проверки верните DNS запись в прежний вид.

5.7. Изменение адреса хранилища в БД

После проверки повторно подключитесь к базе данных и измените адрес хранилища в таблице StorageConfigurations.
Необходимо заменить значение localhost в поле Json на IP-адрес внешнего прокси-сервера Nginx.

Для просмотра текущей конфигурации выполните запрос:

SELECT * FROM public."StorageConfigurations";

Проверьте значение поля Json для записи с именем default.

Для обновления адреса хранилища выполните запрос, указав IP-адрес вашего прокси-сервера:

UPDATE public."StorageConfigurations" SET "Json"='{"Host":"http://192.168.27.35:11580/"}' WHERE "Name" = 'default';

После выполнения запроса убедитесь, что в поле Json отображается корректный адрес внешнего прокси.

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 /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 Admin;
            proxy_set_header X-Forwarded-Proto $scheme;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/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 X-forward-for $proxy_add_x_forwarded_for;
            proxy_set_header X-Module Admin;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/api/v1/Link/ds;
        }

        location /.well-known/carddav {
            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_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/.well-known/carddav;

        }

        location /.well-known/caldav {
            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_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/api/v1/caldav;

        }

        location /carddav {
            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_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/carddav;

        }

         
        location /saml2 {
            proxy_pass http://backend_saml/saml2;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

         
        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 /docserver {
            rewrite /docserver/(.*) /$1  break;
            proxy_pass http://0.0.0.0:8083;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $server_name;
            proxy_set_header X-Forwarded-Proto $the_scheme;
            proxy_set_header Connection $proxy_connection;
            proxy_ssl_verify off;
        }
        location /cache {
            rewrite /docserver/cache/(.*) /$1  break;
            proxy_pass http://0.0.0.0:8083;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $server_name;
            proxy_set_header X-Forwarded-Proto $the_scheme;
            proxy_set_header Connection $proxy_connection;
            proxy_ssl_verify off;
        }
         
        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/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 Calendar;
            proxy_set_header X-Forwarded-Proto $scheme;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/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 X-forward-for $proxy_add_x_forwarded_for;
            proxy_set_header X-Module Calendar;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/api/v1/Link/ds;
        }

        location /api {
            proxy_pass http://backend_api/api;
        }

        location /.well-known/carddav {
            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 Calendar;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/.well-known/carddav;

        }

        location /.well-known/caldav {
            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 Calendar;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/api/v1/caldav;

        }

        location /carddav {
            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 Calendar;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/carddav;

        }

 
        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/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.25.59; #укажите ip-адрес первого Сервера документов
            allow 192.168.25.105; #укажите ip-адрес второго Сервера документов
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/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.25.59; #укажите ip-адрес первого Сервера документов
            allow 192.168.25.105; #укажите ip-адрес второго Сервера документов
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/api/v1/Link/ds;
        }

        location /api {
            proxy_pass http://backend_api/api;
        }

        location /.well-known/carddav {
            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 Disk;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/.well-known/carddav;

        }

        location /.well-known/caldav {
            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 Disk;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/api/v1/caldav;

        }

        location /carddav {
            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 Disk;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/carddav;

        }


        location /saml2 {
            proxy_pass http://backend_saml/saml2;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }


        location /ws {
            proxy_pass http://backend_api/ws;
        }


        location /web-apps {
            proxy_pass http://0.0.0.0:8083/web-apps;
        }

        location /docserver {
            rewrite /docserver/(.*) /$1  break;
            proxy_pass http://0.0.0.0:8083;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $server_name;
            proxy_set_header X-Forwarded-Proto $the_scheme;
            proxy_set_header Connection $proxy_connection;
            proxy_ssl_verify off;
        }
        location /cache {
            rewrite /docserver/cache/(.*) /$1  break;
            proxy_pass http://0.0.0.0:8083;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $server_name;
            proxy_set_header X-Forwarded-Proto $the_scheme;
            proxy_set_header Connection $proxy_connection;
            proxy_ssl_verify off;
        }
 
        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/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 Mail;
            proxy_set_header X-Forwarded-Proto $scheme;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/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 X-forward-for $proxy_add_x_forwarded_for;
            proxy_set_header X-Module Mail;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/api/v1/Link/ds;
        }
 
        location /api {
            proxy_pass http://backend_api/api;
        }

        location /ws {
            proxy_pass http://backend_api/ws;
        }



        location /web-apps {
            proxy_pass http://0.0.0.0:8083/web-apps;
        }

        #location /source {
        #    proxy_pass http://cddisk.test3.s7-office.site/source;
        #}

        location /docserver {
            rewrite /docserver/(.*) /$1  break;
            proxy_pass http://0.0.0.0:8083;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $server_name;
            proxy_set_header X-Forwarded-Proto $the_scheme;
            proxy_set_header Connection $proxy_connection;
            proxy_ssl_verify off;
        }
        location /cache {
            rewrite /docserver/cache/(.*) /$1  break;
            proxy_pass http://0.0.0.0:8083;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $server_name;
            proxy_set_header X-Forwarded-Proto $the_scheme;
            proxy_set_header Connection $proxy_connection;
            proxy_ssl_verify off;
        }
 
        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/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 Contacts;
            proxy_set_header X-Forwarded-Proto $scheme;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/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 X-forward-for $proxy_add_x_forwarded_for;
            proxy_set_header X-Module Contacts;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/api/v1/Link/ds;
        }
 
        location /api {
            proxy_pass http://backend_api/api;
        }

        location /.well-known/carddav {
            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 Contacts;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/.well-known/carddav;

        }

        location /.well-known/caldav {
            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 Contacts;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/api/v1/caldav;

        }

        location /carddav {
            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 Contacts;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/carddav;

        }
 
        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/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 Projects;
            proxy_set_header X-Forwarded-Proto $scheme;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/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 X-forward-for $proxy_add_x_forwarded_for;
            proxy_set_header X-Module Projects;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/api/v1/Link/ds;
        }
 
        location /api {
            proxy_pass http://backend_api/api;
        }

        location /.well-known/carddav {
            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 Projects;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/.well-known/carddav;

        }

        location /.well-known/caldav {
            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 Projects;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/api/v1/caldav;

        }

        location /carddav {
            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 Projects;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://backend_api/carddav;

        }
 
        location / {
            try_files $uri $uri/ /index.html;
        }
}
  • pages.conf
server {
        listen 80;
        listen [::]:80;
        listen 443 ssl http2;
 
        client_max_body_size 26M;
 
        if ($scheme != "https")
        {
                return 301 https://$host$request_uri;
        }
 
        root /var/www/r7-office/pages;
        index index.html;
 
        server_name pages.test3.s7-office.site; #укажите доменное имя модуля страницы
        server_tokens off;
 
        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/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 Pages;
            proxy_set_header X-Forwarded-Proto $scheme;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/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 X-forward-for $proxy_add_x_forwarded_for;
            proxy_set_header X-Module Pages;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/api/v1/Link/ds;
        }
 
        location /app/ {
            proxy_pass http://backend_pages/;
            proxy_set_header Host               $host;
            proxy_set_header X-Real-IP          $remote_addr;
            proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto  $scheme;
        }
 
        location /api {
            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 Pages;
            proxy_pass http://backend_api/api;
        }
 
        location / {
                try_files $uri $uri/ /index.html;
        }
 
}
  • forms.conf
server {
        listen 80;
        listen [::]:80;
        listen 443 ssl http2;
 
        client_max_body_size 26M;
 
        if ($scheme != "https")
        {
                return 301 https://$host$request_uri;
        }
 
        root /var/www/r7-office/forms;
        index index.html;
 
        server_name forms.test3.s7-office.site; #укажите доменное имя модуля формы
        server_tokens off;
 
        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/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 Forms;
            proxy_set_header X-Forwarded-Proto $scheme;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/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 X-forward-for $proxy_add_x_forwarded_for;
            proxy_set_header X-Module Forms;
            allow 127.0.0.1;
            #allow 0.0.0.0;
            deny all;
            proxy_pass http://backend_api/api/v1/Link/ds;
        }

 
        location /app/ {
            proxy_pass http://backend_pages/;
            proxy_set_header Host               $host;
            proxy_set_header X-Real-IP          $remote_addr;
            proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto  $scheme;
        }
 
        location /api {
            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 Forms;
            proxy_pass http://backend_api/api;
        }
 
        location / {
                try_files $uri $uri/ /index.html;
        }
 
        #location /source {
        #    proxy_pass http://cddisk.r7.ru/source;
        #}
 
}
  • 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;
  #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; #Ограничивает количество попыток перенаправления запроса на другой сервер
  }
}
  • regfs.conf
server {
  listen 7777;
 
location / {
  proxy_pass http://backend_reg;
  proxy_http_version 1.1;
  }
}
  • fs.conf
server {
  listen 11580;
  location / {
    proxy_pass http://backend_fs;
    proxy_http_version 1.1;
  }
}
  • upstream.conf
upstream backend_api { #укажите адреса нод вынесенных api
        ip_hash;
        server 192.168.25.236:38033;
        server 192.168.25.193:38033;
        server 192.168.25.238:38033;
}
upstream backend_reg { #укажите адреса нод вынесенных registry+filestorage
        server 192.168.27.115:7777;
        server 192.168.26.172:7777;
}
upstream backend_fs { #укажите адреса нод вынесенных registry+filestorage
        server 192.168.27.115:11580;
        server 192.168.26.172:11580;
}
upstream backend_pages { #укажите адрес установленного КС, который будет использоваться, как нода api
        server 192.168.25.238:8080;
}
upstream backend_saml { #укажите адреса нод вынесенных api
        server 192.168.25.236:38034;
        server 192.168.25.193:38034;
        server 192.168.25.238:38034;
}

6.2. Перенос данных с Корпоративного сервера

Скопируйте содержимое каталога /var/www/r7-office с Корпоративного сервера.

6.3. Опциональная развертка дополнительных нод Nginx

Реализация нескольких нод Nginx:

Пример реализации внешнего балансировщика Nginx для архитектуры High Available ↗.

7. Вынос processing

Инструкция:

Вынос сервиса Processing для РЕД ОС ↗.

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

7.1. На установленном Корпоративном сервере 2024

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

9. Вынос registry+filestorage

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

9.1. На установленном КС

9.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

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

id cddisk

9.2. На ВМ с ролью Registry+Filestorage

9.2.1. Настройка NFS

Укажите в /etc/fstab:

192.168.26.247:/mnt/disk/filestorage /var/r7-office/filestorage nfs defaults 0 2

Где:

  • IP — адрес NFS.

Примонтируйте каталог:

mount -a

9.2.2. Перенесите архив с КС и распакуйте

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

9.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

9.2.4. Создайте группу и пользователя

groupadd -g 131 cddisk
useradd -u 119 -g 131 cddisk

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

rm -f /etc/supervisord.d/{cddisk-processing,cddisk-searchapi,cddisk-ssoapi,cddisk-api}.ini

9.2.6. Отредактируйте файл /etc/supervisord.d/cddisk.ini

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

[group:cddisk]
programs=filestorage,registry

9.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.36:2664"
    }
  ],
  "ServiceRegistry": {
    "Host": "http://192.168.27.153:7777"
  }
}

Где:

  • 192.168.27.153 — адрес текущего сервера;
  • 192.168.26.36 — адрес сервера с ролью Search.

9.2.8. Отредактируйте файл /opt/r7-office/FileStorage/appsettings.json

Укажите адрес текущего сервера:

"FileStorage": {
"Host": "http://192.168.27.153:11580"
}

9.2.9. Повторите действия для других нод Registry+filestorage

10. Вынос api

Уточнение

Инструкция по ссылке: Вынос сервиса API для РЕД ОС ↗.

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

10.1. На установленном Корпоративном сервере 2024

10.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

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

id cddisk

10.2. На ВМ с ролью API

10.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

10.2.2. Перенесите архив с КС и распакуйте

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

10.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

10.2.4. Создайте группу и пользователя

groupadd -g 131 cddisk
useradd -u 119 -g 131 cddisk

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

rm -f /etc/supervisord.d/{cddisk-processing,cddisk-filestorage,cddisk-registry,cddisk-searchapi}.ini

10.2.6. Отредактируйте файл /etc/supervisord.d/cddisk.ini

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

[group:cddisk]
programs=api,apisso

10.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
  }

10.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
  }

10.2.9. Перезапустите сервис и добавьте в автозагрузку

systemctl enable supervisord.service
systemctl restart supervisord.service
supervisorctl restart all

10.2.10. Повторите действия для последующих нод API

Данные действия необходимо выполнить для всех последующих нод API, а также для установленного Корпоративного сервера 2024, который в дальнейшем будет использоваться в качестве API-ноды.

Дополнительно, на сервере с установленным Корпоративным сервером 2024 требуется внести изменения в файл /etc/hosts.

Необходимо удалить или закомментировать следующие строки, чтобы исключить локальное разрешение доменных имён:

#127.0.0.1 test3.s7-office.site
#127.0.0.1 admin.test3.s7-office.site
#127.0.0.1 contacts.test3.s7-office.site
#127.0.0.1 projects.test3.s7-office.site
#127.0.0.1 pages.test3.s7-office.site
#127.0.0.1 forms.test3.s7-office.site
#127.0.0.1 cddisk.test3.s7-office.site
#127.0.0.1 ds.test3.s7-office.site
#127.0.0.1 calendar.test3.s7-office.site
#127.0.0.1 cdmail.test3.s7-office.site

11. Проверка работы сервиса

Перейдите по DNS имени внешнего Nginx (настройка производилась в пункте 6), используя имя cddisk.test3.s7-office.site.

Уточнение

По умолчанию логин и пароль superadmin.

Перейдите по ссылкам из стартовой страницы для проверки работы приложения.

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

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

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