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

Кластер DS Astra Linux

Обновлено: 19.10.26

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

Кластер DS Astra LinuxОбратите внимание

Рекомендации по безопасному развёртыванию

1. Если планируется подключение к Серверу документов из внешней сети, к нему следует применять те же меры защиты, что и к веб-серверу. Такой сервер необходимо размещать в DMZ (зоне демилитаризации), вне внутреннего корпоративного периметра, чтобы снизить риск для внутренних систем. Заранее определите список необходимых портов и протоколов для внешнего и внутреннего взаимодействия и настройте соответствующие правила межсетевого экрана.

2. Для корпоративных установок рекомендуется организовывать доступ к Серверу документов только через корпоративный VPN. Размещение сервера с прямым доступом из интернета не рекомендуется.

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

Кластер не прошёл тестирование, статья выложена без всех стадий тестирования и проверок, поэтому может быть не актуальна и иметь ошибки.

0. Схема


Системные требования

Ноды сервера документов

  • Процессор: рекомендуется от 4 ядер;
  • Оперативная память: рекомендуется от 8 Гб;
  • Свободное место на жестком диске: рекомендуется от 40 Гб.

Ноды RabbitMQ, Postgresql, Redis

  • Процессор: рекомендуется от 4 ядер;
  • Оперативная память: рекомендуется от 4 Гб;
  • Свободное место на жестком диске: рекомендуется от 40 Гб.

Ноды общего хранилища, Nginx

  • Процессор: рекомендуется от 2 ядер;
  • Оперативная память: рекомендуется от 4 Гб;
  • Свободное место на жестком диске: рекомендуется от 40 Гб.

Требования к программному обеспечению

Поддерживаемые операционные системы ↗.

Дополнительные требования:

  • PostgreSQL: версия 15 или выше;
  • NGINX: версия 1.22 или выше;
  • Redis: версия 7.0 или выше;
  • Erlang: версия 25 или выше;
  • RabbitMQ: версия 3.10 или выше;
  • Samba: версия 4.19 или выше.

1. Роль СУБД, RabbitMQ и Redis

Важно

Данные роли можно разнести по серверам, выполняя пункты 1.1, 1.2 и 1.3 на разных серверах.

Важно

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

# Добавляем службы:
sudo firewall-cmd --permanent --zone=public --add-service=postgresql
sudo firewall-cmd --permanent --zone=public --add-service=redis
sudo firewall-cmd --permanent --zone=public --add-service=amqp
 
# Перезапускаем службу firewalld:
sudo firewall-cmd --reload
 
# Проверяем правила для зоны public:
sudo firewall-cmd --zone=public --list-all

1.1. СУБД

1.1.1. Установите PostgreSQL

apt install postgresql -y

1.1.2. Создайте БД

sudo -i -u postgres psql -c "CREATE USER r7office WITH password 'r7office';"
sudo -i -u postgres psql -c "CREATE DATABASE r7office OWNER r7office;"
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE r7office TO r7office;"

1.1.3. Добавьте сервис в автозагрузку

systemctl enable postgresql

1.1.4. Приведите файл /etc/postgresql/15/main/pg_hba.conf к виду

Важно

Версия PostgreSQL может отличаться.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
 
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# Указать все сервера с DS
host    r7office        r7office        192.168.25.234/32       md5
host    r7office        r7office        192.168.25.130/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 r7office r7office 192.168.25.234/32 md5 — Это доступ к БД r7office пользователю r7office с ip 192.168.25.234 по методу md5.

1.1.5. Приведите строки в файле /etc/postgresql/15/main/postgresql.conf к виду и раскомментируйте их

listen_addresses = 'localhost, 192.168.25.102'
port = 5432

Где:

  • localhost, 192.168.25.102 — интерфейсы, которые должен слушать PostgreSQL (чтобы слушались все интерфейсы можно также указать ‘*’).

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

systemctl restart postgresql
  • Проверяем:
systemctl status postgresql

1.1.7. Проверьте, что слушает нужные интерфейсы

netstat -tln | grep 5432
  • Пример вывода:

1.2. Установка и настройка Redis

1.2.1. Установите Redis

apt install redis -y

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

systemctl start redis-server
systemctl enable redis-server

1.2.3. Редактируйте файл /etc/redis/redis.conf, строки приведите к виду

bind 127.0.0.1 192.168.25.102
protected-mode no

Где:

  • bind 127.0.0.1 192.168.25.102 — интерфейсы, которые необходимо слушать приложению Redis.

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

systemctl restart redis

1.2.5. Проверьте, слушаются ли порты

netstat -lpn | grep redis

1.3. Установка и настройка RabbitMQ

1.3.1. Установите RabbitMQ

apt install "rabbitmq-server=3.*" -y

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

systemctl enable rabbitmq-server --now

1.3.3. Редактируйте/создайте (если нет в директории) файл /etc/rabbitmq/rabbitmq.conf, приведите параметры к виду

listeners.tcp.other_ip = 192.168.25.102:5672

Где:

  • 192.168.25.102add_vhost — ip сервера с RabbitMQ.

1.3.4. Перезапустие сервис и проверьте

systemctl restart rabbitmq-server
systemctl status rabbitmq-server

1.3.5. Проверьте, слушает ли порты

netstat -lpn | grep beam
  • Пример вывода:

1.3.6. Выдайте права для ds

# Создаём пользователя r7office с паролем r7office 
rabbitmqctl add_user r7office r7office    
# Создаем вирутальный хост для DS 
rabbitmqctl add_vhost ds

#Выдаем права на пользователя для доступа к виртуальному хосту
rabbitmqctl set_permissions -p ds r7office ".*" ".*" ".*"
 
# Даём права ВМ с DS (выполнить для каждой ноды DS)
rabbitmqctl set_permissions -p ds r7office ".*" ".*" ".*"
Важно

По умолчанию существует виртуальной хост «/» с доступом guest\guest.

2. Роль балансировщика

Важно

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

# Добавляем службы:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
 
# Перезапускаем службу firewalld:
sudo firewall-cmd --reload
 
# Проверяем правила для зоны public:
sudo firewall-cmd --zone=public --list-all

2.1. Установите Nginx

apt install nginx -y

2.1.1. Запустите службу nginx

systemctl enable nginx --now

2.2. Создайте конфигурационные файлы

2.2.1. Общий конфигурационный файл

nano /etc/nginx/conf.d/r7-proxy.conf
  • С содержимым:
upstream ds {
  server <IP_DS>;
}
 
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;
}
Уточнение

В блоке upstream ds {} — указываем IP адреса серверов DS.
<IP_DS> – приватные ip адреса нод с Document Server

2.2.2. Конфигурационный файл для DS

nano /etc/nginx/conf.d/r7-ds.conf
  • С содержимым:
server {
  listen 80;
  server_name <DNS_DS>;
  server_tokens off;
  ## Redirects all traffic to the HTTPS host
  return 301 https://$server_name$request_uri;
}
 
server {
  listen 443 ssl http2;
  server_name <DNS_DS>;
  server_tokens off;
  root /usr/share/nginx/html;
   
  ssl_certificate <SSL_CERTIFICATE_PATH>;
  ssl_certificate_key <SSL_KEY_PATH>;
  ssl_verify_client off;
  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
   
  ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_session_cache builtin:1000 shared:SSL:10m;
   
  ssl_prefer_server_ciphers on;
   
  add_header X-Content-Type-Options nosniff;
   
  location / {
    proxy_pass http://ds;
    proxy_http_version 1.1;
     
    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;
  }
}

Где:

  • <DNS_DS> – Имя для сервиса DS,
    Например: astracl-ds.uatr7.ru;
  • <SSL_CERTIFICATE_PATH> – Путь до ssl сертификата,
    Например: ssl_certificate /etc/nginx/ssl/uatr7.ru.crt;
  • <SSL_KEY_PATH> – Путь до приватного ключа сертификата,
    Например ssl_certificate_key /etc/nginx/ssl/uatr7.ru.key.

2.3. Проверьте конфигурацию

nginx -t
  • Пример вывода:

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

systemctl restart nginx

3. Файловое хранилище

3.1. Подготовка к установке ПО Samba

Рассмотрим вариант простого samba хранилища на Astra Linux 1.7.4 Orel.

Важно

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

# Добавляем службу:
sudo firewall-cmd --permanent --zone=public --add-service=samba
 
# Перезапускаем службу firewalld:
sudo firewall-cmd --reload
 
# Проверяем правила для зоны public:
sudo firewall-cmd --zone=public --list-all

3.1.1. Установите ПО Samba

apt install samba -y

3.1.2. Запустите сервис

systemctl enable smbd.service

3.1.3. Создайте директории

mkdir /mnt/cache
mkdir /mnt/data

3.2. Добавьте файл лицензии

  • По данному пути добавляем файл лицензии с именно таким именем license.lic:.
/mnt/data/license.lic

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

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

В данной инструкции рассматривается чистая инсталляции без имеющихся DS. Если у Вас уже есть DS, то необходимо указать UID и GID пользователя ds с ВМ, где установлен DS.

  • Можно воспользоваться командой:
id ds
Обратите внимание

В данной инструкции установки не рассматривается наличие уже установленного Документ сервера, поэтому UID и GID будут везде указаны 1100. Если Вам важно сохранить имеющийся DS, то необходимо использовать GID и UID с данной ВМ, либо изменить их на ней, возможно использовать данные команды:

systemctl stop ds-* --all
groupmod -g 1100 ds
usermod -u 1100 -g 1100 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.3.1. Создайте пользователя «ds»

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

UID и GID пользователя ds должны быть одинаковые на всех ВМ с Сервер Документов и samba хранилищем

# Создаём группу с gid 1100
groupadd -g 1100 ds
 
# Создаём пользователя с uid 1100 и добавляем его в группу с gid 1100
useradd -u 1100 -g 1100 ds
 
# Задаем пароль пользователю
smbpasswd -a ds
 
# Обновляем права на каталоги
chown ds:ds -R /mnt/cache/
chown ds:ds -R /mnt/data

3.3.2. Редактируйте файл

Добавьте в конец файла /etc/samba/smb.conf параметры конфигурации для общих ресурсов cache и data:

nano /etc/samba/smb.conf
  • С содержимым:
[cache]
comment = DS cache
path = /mnt/cache/
valid users = ds
write list = ds
read only = no
writable = yes
 
[data]
comment = DS data
path = /mnt/data
valid users = ds
write list = ds
read only = no
writable = yes

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

4. Роль DS

Важно

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

# Добавляем службы:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
 
# Перезапускаем службу firewalld:
sudo firewall-cmd --reload
 
# Проверяем правила для зоны public:
sudo firewall-cmd --zone=public --list-all

4.1. Подготовка к установке Сервер Документов

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

nano /etc/apt/sources.list
  • С содержимым:
# Репозиторий Debian
deb https://archive.debian.org/debian/ stretch main contrib non-free

4.1.2. Измените параметр «Pin-Priority» на «500»

nano /etc/apt/preferences.d/smolensk
  • С содержимым:
Package: *
Pin: release n=1.8_x86-64
Pin-Priority: 900 на 500

4.1.3. Добавьте репозиторий «r7-office»

sudo apt update && sudo apt install curl -y
sudo echo "deb https://download.r7-office.ru/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/r7-office.list
sudo curl -s https://download.r7-office.ru/repo/gpgkey/r7-office.gpg.key | sudo apt-key add -

4.1.4. Обновите список пакетов

sudo apt update

4.1.5. Добавьте записи для сервисов в /etc/hosts

Важно

ip для сервисов может быть разный или у Вас может быть свой DNS с уже сделанными записями, поэтому данный пункт можете пропустить.

192.168.25.56 rabbitmq
192.168.25.56 redis
192.168.25.56 postgresql

4.1.6. Задайте параметры для PostgreSQL, RabbitMQ, Redis

  • Для PostgreSQL:
echo r7-office-documentserver-ee ds/db-host string postgresql | sudo debconf-set-selections
echo r7-office-documentserver-ee ds/db-pwd select r7office | sudo debconf-set-selections
echo r7-office-documentserver-ee ds/db-user select r7office | sudo debconf-set-selections
echo r7-office-documentserver-ee ds/db-name select r7office | sudo debconf-set-selections
  • Для RabbitMQ:
echo r7-office-documentserver-ee ds/rabbitmq-host string rabbitmq:5672 | sudo debconf-set-selections
echo r7-office-documentserver-ee ds/rabbitmq-user string r7office | sudo debconf-set-selections
echo r7-office-documentserver-ee ds/rabbitmq-pwd password r7office | sudo debconf-set-selections
  • Для Redis:
echo r7-office-documentserver-ee ds/redis-host string redis | sudo debconf-set-selections

4.1.7. Задайте «header» и «secret» ,включите «jwt»

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

Это параметры из файла /etc/r7-office/documentserver/local.json
Должны быть ОДИНАКОВЫ для всех ВМ с DS в кластере, если используется «JWT»

Важно

Если JWT необходимо отключить, то выполните данную команду:

echo r7-office-documentserver-ee ds/jwt-enabled boolean false | sudo debconf-set-selections

echo r7-office-documentserver-ee ds/jwt-header string AuthorizationJWT | sudo debconf-set-selections
echo r7-office-documentserver-ee ds/jwt-enabled boolean true | sudo debconf-set-selections
echo r7-office-documentserver-ee ds/jwt-secret password x8HtBJJavrBlYmXaVaRwcKPTxW | sudo debconf-set-selections
  • Пример содержимого:
},
      "token": {
        "enable": {
          "request": {
            "inbox": true,
            "outbox": true
          },
          "browser": true
        },
        "inbox": {
          "header": "AuthorizationJWT"
        },
        "outbox": {
          "header": "AuthorizationJWT"
        }
      },
      "secret": {
        "inbox": {
          "string": "x8HtBJJavrBlYmXaVaRwcKPTxW"
        },
        "outbox": {
          "string": "x8HtBJJavrBlYmXaVaRwcKPTxW"
        },
        "session": {
          "string": "x8HtBJJavrBlYmXaVaRwcKPTxW"
        }

4.1.8. Установите пакеты ПО для подключения файлового хранилища

apt install cifs-utils smbclient -y

4.2. Установите Сервер Документов

apt-get install r7-office-documentserver-ee -y

4.3. Настройка сервера с Сервер Документов

4.3.1. Остановите службы

systemctl stop ds-* --all

4.3.2. Создайте файл для авторизации в smb

nano ~/.ds
  • С содержимым:
# Логин
username=ds
# Пароль (если не требуется, то можно оставить пустым)
password=M7qcsbs3b5IoXSqa

4.3.3. Измените права

chmod 600 ~/.ds

4.3.4. Добавьте автомонтирование в файл

nano /etc/fstab
  • С содержимым:
//192.168.25.56/cache /var/lib/r7-office/documentserver/App_Data/cache cifs credentials=/root/.ds,uid=1100,gid=1100,rw,iocharset=utf8,nofail,_netdev 0 0
//192.168.25.56/data /var/www/r7-office/Data cifs credentials=/root/.ds,uid=1100,gid=1100,rw,iocharset=utf8,nofail,_netdev 0 0

Где:

  • 192.168.25.56 — ip samba сервера;
  • /mnt/cache и /mnt/data — каталоги на samba сервере;
  • /var/www/r7-office/Data и /var/lib/r7-office/documentserver/App_Data/cache — пути монтирования на ВМ с DS.

4.3.5. Измените gid группы и uid пользователя ds

groupmod -g 1100 ds
usermod -u 1100 -g 1100 ds

4.3.6. Назначьте права на директории

chown -R ds:ds /var/lib/r7-office/
chown -R ds:ds /var/www/r7-office/
chown -R ds:ds /etc/r7-office/
chown -R ds:ds /var/log/r7-office/

4.3.7. Выполните монтирование

mount -a

4.3.8. Проверьте монтирование

df -h
  • Пример вывода:

4.3.9. Обновите параметры для ds и nginx

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

Данные параметры должны ОДИНАКОВЫ для всех ВМ с DS в кластере.

  • Для ds «secretString»:
nano /etc/r7-office/documentserver/local.json
Обратите внимание

Проверьте в параметре rabbitmq на всех нодах:

"rabbitmq": {
    "url": "amqp://r7office:r7office@192.168.25.102"
  },

Где:

  • r7office:r7office — логин и пароль из пункта 1.3.6;
  • 192.168.25.102 — адрес сервера rabbitmq.

  • Для nginx «secure_link_secret»:
nano /etc/r7-office/documentserver/nginx/ds.conf

4.3.10. Перезапустите службу Nginx

systemctl restart nginx.service

4.3.11. Перезапустите службы ds и проверьте их статус

systemctl restart ds-* --all
systemctl status ds-* --all

4.4. Проверьте веб страницу DS

http://192.168.25.234/
Уточнение

Где:

  • 192.168.25.234 — ip адрес DS.

Пример страницы:

4.5. Проверьте веб страницу на балансировщике/reverse proxy

https://astracl-ds.uatr7.ru/

Где:

  • astracl-ds.uatr7.ru — dns имя балансировщика/reverse proxy.

Пример страницы:

4.6. Повторите пункт 4 для каждой ноды DS

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

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

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