Сервер на РЕД ОС под Битрикс: зачем и как

Развёртывание 1С-Битрикс и Битрикс24 на российском серверном дистрибутиве — не экзотика, а осознанный выбор для госсектора, КИИ и компаний, которым важна сертификация и предсказуемая поддержка. В этой статье — что такое РЕД ОС 7.3, чем она удобна как платформа для Битрикс и как по шагам поднять рабочее окружение.


Почему РЕД ОС 7.3

РЕД ОС — российская операционная система на базе Linux. Редакция 7.3 — это долгоживущая (LTS) платформа с акцентом на стабильность и соответствие отечественным требованиям по защите информации.

Сертификация и доверие

  • РЕД ОС 7.3 прошла проверку ФСТЭК России и соответствует требованиям по безопасности информации (в т.ч. уровни доверия к СЗИ, профиль ИТ.ОС.А4.ПЗ).
  • Система зарегистрирована в Едином реестре российских программ Минцифры (реестр отечественного ПО).
  • Сертифицированы не только ядро, но и ключевые компоненты: веб-серверы (nginx, httpd), интерпретаторы, средства контейнеризации и оркестрации — то, что как раз нужно для веб-приложений вроде Битрикс.

Для заказчиков это значит возможность использовать такую платформу в ГИС, КИИ, ИСПДн и других средах, где требуются сертифицированные ОС и учёт рекомендаций регуляторов.

Технические особенности 7.3

  • Ядро Linux 5.10 (LTS) — поддержка современного железа при сохранении предсказуемого жизненного цикла.
  • В репозиториях — nginx, Apache (httpd), MariaDB, PHP, Redis, инструменты для контейнеров и оркестрации.
  • Встроенные механизмы защиты: SELinux, средства аудита, контроля целостности, шифрования — всё то, что ожидают от серверной ОС в регулируемых средах.
  • Управление пакетами — dnf; сервисы — systemd. Привычная схема для администраторов RHEL/CentOS/ Rocky.

Итого: РЕД ОС 7.3 даёт знакомую по RHEL-экосистеме среду, но с российскими сертификатами и поддержкой вендора — удобный вариант для корпоративного и государственного сегмента, в том числе под 1С-Битрикс.


О чём эта инструкция

Ниже — пошаговая настройка сервера РЕД ОС 7.3 под продукты 1С-Битрикс24 (коробка) и 1С-Битрикс: Управление сайтом. Мы пройдём от установки ОС и пакетов до веб-серверов, БД, Redis, Push-server и первого запуска сайта.

Официальный курс 1С-Битрикс по этой теме: «Настройка окружения для РЕД ОС 7.3». Документация по веб-серверам РЕД ОС: база знаний — веб-серверы.

Важно: установка на «не-BitrixVM» окружения поддерживается вендором, но может иметь нюансы. Нужны базовые навыки администрирования Linux.

Содержание


1. Установка и настройка ОС

Исходим из того, что РЕД ОС 7.3 уже установлена (образ и установчик — на сайте вендора).

Минимум по железу: 2 ГБ RAM, 2 ядра CPU, 20 ГБ диска. Для продакшена лучше заложить больший запас.

Сразу после установки имеет смысл:

  • Обновить систему: sudo dnf update -y.
  • Задать hostname, если нужен: sudo hostnamectl set-hostname bitrix.example.local.
  • Настроить сеть (статический IP — через конфиги в /etc/sysconfig/network-scripts/ или через nmcli).
  • Убедиться, что репозитории доступны: sudo dnf repolist.

Если включён SELinux, позже придётся учесть контексты и правила для каталогов сайта и веб-серверов — к этому вернёмся в разделе про сайт.


2. Установка пакетов

Всё ставим из репозиториев РЕД ОС — одной командой или по группам.

Веб-серверы и PHP:

sudo dnf install -y nginx httpd
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-pdo php-mbstring \
  php-xml php-json php-gd php-curl php-zip php-intl php-bcmath

БД и кэш:

sudo dnf install -y mariadb-server mariadb redis

Утилиты и Node.js (для Push-server):

sudo dnf install -y git unzip wget curl nodejs npm

3. Конфигурация NGINX

NGINX принимает трафик снаружи, отдаёт статику сам и передаёт запросы к PHP на Apache и на Push-server (sub/pub). По инструкции Битрикс задаются: рабочий каталог /var/www/html/bx-site, пользователь nginx, группа apache; подключаются conf.d/upstreams.conf (apache и push-server), maps-composite_settings.conf, maps.conf, http-add_header.conf, затем sites-available/default.conf (порт 80, включены bx_temp.conf и bitrix.conf) и sites-available/rtc.conf (проксирование на push для публикации). В upstream используются имена httpd и push; на одном сервере их прописывают в /etc/hosts: echo "127.0.0.1 push httpd" >> /etc/hosts. Развёртывание готовой структуры: rsync -av <каталог_nginx>/ /etc/nginx/, затем systemctl --now enable nginx.

Установка и старт:

sudo dnf install -y nginx
sudo systemctl enable nginx --now

Ниже — минимальный пример виртуального хоста (например, /etc/nginx/conf.d/bitrix.conf), если настраиваете вручную:

server {
    listen 80;
    server_name your-site.local;
    root /var/www/bitrix/html;
    index index.php index.html;

    access_log /var/log/nginx/bitrix_access.log;
    error_log  /var/log/nginx/bitrix_error.log;

    location ~* \.(jpg|jpeg|gif|png|ico|css|js|woff|woff2|ttf|svg)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
        try_files $uri =404;
    }

    location ~ \.php$ {
        proxy_pass http://127.0.0.1:8090;
        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 / {
        try_files $uri $uri/ /index.php?$args;
    }
}

Замените server_name и root на свои. Если используете PHP-FPM вместо Apache — замените proxy_pass на fastcgi_pass (сокет или 127.0.0.1:9000).

Проверка и применение:

sudo nginx -t
sudo systemctl reload nginx

Подробнее в документации РЕД ОС по nginx.


4. Конфигурация PHP

Централизованное хранилище конфигов PHP на РЕД ОС: /etc/php.d/. Версию и список расширений сверяйте с требованиями Битрикс.

По инструкции Битрикс «Конфигурация PHP» минимально необходимо:

Модуль opcache (отдельный файл в /etc/php.d/, например 10-opcache.ini):

opcache.max_accelerated_files = 100000
opcache.revalidate_freq = 0

Файл zx-bitrix.ini в /etc/php.d/:

display_errors = Off
error_reporting = E_ALL
error_log = '/var/log/php/error.log'
enable_dl = Off
short_open_tag = On
allow_url_fopen = On
mail.add_x_header = Off
expose_php = Off

Обязательно для Битрикс: в одном из конфигов (например, в zx-bitrix.ini) должно быть задано mbstring.func_overload = 0.

Дополнительно при необходимости задают memory_limit, upload_max_filesize, post_max_size, max_execution_time, date.timezone и др. (в php.ini или в файлах /etc/php.d/).

Если используете PHP-FPM:

sudo systemctl enable php-fpm --now

Сокет по умолчанию — /run/php-fpm/www.sock или порт 9000.


5. Конфигурация Apache (HTTPD)

По умолчанию Apache настроен на каталог /var/www/html. Для Битрикс при использовании Nginx как внешнего сервера нужно: изменить каталог сайта на /var/www/html/bx-site, перевести Apache на локальный порт (внешний трафик принимает Nginx) и использовать MPM prefork. По инструкции Битрикс «Конфигурация Apache» настраивают три файла:

  1. conf.d/default.conf — в описании сайта указать каталог /var/www/html/bx-site и порт виртуального хоста (8090).
  2. conf/httpd.conf — задать Listen 127.0.0.1:8090 (или Listen 8090).
  3. conf.modules.d/00-mpm.conf — включить MPM prefork (а не event).

Установка и запуск:

sudo dnf install -y httpd

При развёртывании готовой конфигурации скопировать файлы в /etc/httpd/, например:

rsync -av <каталог_httpd>/ /etc/httpd/

Создать каталог сайта и права:

sudo mkdir -p /var/www/html/bx-site
sudo chown -R apache:apache /var/www/html/bx-site

Запустить сервис:

sudo systemctl --now enable httpd

Подробнее: документация РЕД ОС по Apache.


6. Конфигурация MariaDB

По инструкции Битрикс для MariaDB задают:

  • transaction-isolationREAD-COMMITTED (обязательно);
  • innodb_flush_methodO_DIRECT (рекомендуется);
  • innodb_flush_log_at_trx_commit2 (рекомендуется).

Конфигурационные файлы размещают в /etc/my.cnf.d/ (отдельный файл с секцией [mysqld]).

Установка и развёртывание конфигурации:

sudo dnf install -y mariadb-server mariadb

При развёртывании готовой конфигурации:

rsync -av <каталог_my.cnf.d>/ /etc/my.cnf.d/

Запуск сервиса:

sudo systemctl --now enable mariadb
sudo mysql_secure_installation

В консоли MySQL создайте БД и пользователя для Битрикс. Ниже — пример с именами по умолчанию; в разделе 9. Конфигурация сайта приведён вариант из инструкции Битрикс (БД portal, пользователь bitrix):

CREATE DATABASE bitrix_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'bitrix_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON bitrix_db.* TO 'bitrix_user'@'localhost';
FLUSH PRIVILEGES;

Для нагруженных стендов позже можно подправить innodb_buffer_pool_size и другие параметры.


7. Конфигурация Redis

Redis нужен для работы Push-сервера (и при необходимости для кэша/сессий Битрикс). По инструкции Битрикс выполняют:

  1. Включить файловый сокет для работы (unix socket).
  2. Отключить сброс данных на диск (для Push-сервера не требуется): отключить RDB-снимки (save "") и AOF (appendonly no).
  3. Установить группу пользователя redis в apache (чтобы Push-сервер имел доступ к сокету).

Конфигурационные файлы размещают в /etc/redis/.

Установка и развёртывание конфигурации:

sudo dnf install -y redis

При развёртывании готовой конфигурации:

rsync -av <каталог_redis>/ /etc/redis/

Группа пользователя и права:

sudo usermod -g apache redis
sudo chown root:apache /etc/redis/ /var/log/redis/
[[ ! -d /etc/systemd/system/redis.service.d ]] && sudo mkdir -p /etc/systemd/system/redis.service.d
echo -e '[Service]\nGroup=apache' | sudo tee /etc/systemd/system/redis.service.d/custom.conf
sudo systemctl daemon-reload

Запуск сервиса:

sudo systemctl --now enable redis

В конфиге должны быть: bind 127.0.0.1 (доступ только с localhost), сокет (например unixsocket /tmp/redis.sock). В настройках Битрикс и Push-сервера укажите хост 127.0.0.1 и порт 6379 или путь к сокету.


8. Конфигурация Push-server

Push-server на Node.js нужен для мгновенных уведомлений и реального времени в Битрикс24 (чаты, оповещения). Ниже — настройка в соответствии с официальной инструкцией 1С-Битрикс.

Схема работы

Nginx проксирует запросы на push-сервис выбранного типа. Запросы получения сообщений (sub) — публичные, идут с портов 80/443. Запросы публикации (pub) — только с внутреннего адреса сервера (8895).

| nginx: 0.0.0.0:80     | -> /bitrix/sub | /bitrix/subws -> | node server.js --config push-server-sub-80XX.json |
| nginx: 127.0.0.1:8895 | -> /bitrix/pub ->                | node server.js --config push-server-pub-90XX.json  |

Процессы Node.js делятся на два типа:

  1. Sub — подключение пользователя к каналу и получение сообщений. Слушают порты 8010–8015 (конфиги push-server-sub-8010.jsonpush-server-sub-8015.json).
  2. Pub — отправка сообщения в канал. Слушают порты 9010–9011 (конфиги push-server-pub-9010.json, push-server-pub-9011.json).

Требования

Шаг 1. Скачать и установить архив

su -
cd /opt
wget https://repo.bitrix24.tech/vm/push-server-0.3.0.tgz
npm install --omit=dev ./push-server-0.3.0.tgz

Если репозиторий недоступен — положите архив в /opt и выполните:

su -
cd /opt
npm install --production ./push-server-0.3.0.tgz

Установка заканчивается строкой вида:

added 1 package in 2m
 16 packages are looking for funding
   run `npm fund` for details

Шаг 2. Симлинк и копирование файлов сервиса

su -
ln -sf /opt/node_modules/push-server/etc/push-server /etc/push-server
cd /opt/node_modules/push-server
cp etc/init.d/push-server-multi /usr/local/bin/push-server-multi
cp etc/sysconfig/push-server-multi /etc/sysconfig/push-server-multi
cp etc/push-server/push-server.service /etc/systemd/system/
ln -sf /opt/node_modules/push-server /opt/push-server

Шаг 3. Параметры в /etc/sysconfig/push-server-multi

В конфигурационном файле задайте (или добавьте) параметры:

ПараметрОписание
SECURITY_KEYСекретный ключ для подписи соединения между клиентом и пуш-сервером. Только латиница и цифры (спецсимволы запрещены). Короткий ключ небезопасен.
RUN_DIRДиректория для хранения PID-файлов процессов.
USER / GROUPПользователь и группа, под которыми запускается сервис.

Генерация ключа (рекомендуется):

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 128

Пример настроек:

USER=bitrix
GROUP=apache
SECURITY_KEY="PUTTHEPRIVATEKEYHERE"
RUN_DIR=/tmp/push-server

Шаг 4. Создать пользователя

su -
useradd -g apache bitrix

Шаг 5. Сгенерировать конфигурации sub и pub

/usr/local/bin/push-server-multi configs pub
/usr/local/bin/push-server-multi configs sub

Файлы push-server-sub-80XX.json и push-server-pub-90XX.json появятся в каталоге /etc/push-server/.

Шаг 6. Каталог для PID через tmpfiles.d

echo 'd /tmp/push-server 0770 bitrix apache -' > /etc/tmpfiles.d/push-server.conf
systemd-tmpfiles --remove --create

Шаг 7. Каталог логов

[[ ! -d /var/log/push-server ]] && mkdir /var/log/push-server
chown bitrix:apache /var/log/push-server

Шаг 8. Правки в /etc/systemd/system/push-server.service

Укажите пользователя, группу и пути к скрипту:

[Service]
User=bitrix
Group=apache
ExecStart=/usr/local/bin/push-server-multi systemd_start
ExecStop=/usr/local/bin/push-server-multi stop
...

Шаг 9. Запуск сервиса

systemctl daemon-reload
systemctl --now enable push-server

Проверка: systemctl status push-server.

Шаг 10. Настройки в Битрикс

В конфигурации Push-модуля (настройки сайта) включите использование локального Push-сервера (последняя версия) и укажите тот же секретный ключ, что задан в SECURITY_KEY в /etc/sysconfig/push-server-multi.

Конфигурация Nginx (отдельно)

Чтобы запросы доходили до Push-server, в Nginx должны быть:

  • На 0.0.0.0:80 (и при необходимости 443) — проксирование /bitrix/sub/ и /bitrix/subws/ на upstream с портами 8010–8015.
  • На 127.0.0.1:8895 — проксирование /bitrix/pub/ на upstream с портами 9010–9011.

На одном сервере в upstream укажите server 127.0.0.1:8010;127.0.0.1:8015 и 127.0.0.1:9010; 127.0.0.1:9011;.

Официальная инструкция: Конфигурация Push-server.


9. Конфигурация сайта

По инструкции Битрикс «Конфигурация сайта».

Сайт

sudo mkdir -p /var/www/html/bx-site
cd /var/www/html/bx-site
sudo wget https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php
sudo chown apache:apache /var/www/html/bx-site -R

Аналогично можно скачать нужный дистрибутив и разместить его в /var/www/html/bx-site.

База данных

Получите доступ к оболочке MariaDB и создайте базу и пользователя (пароль замените на свой):

CREATE DATABASE portal CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'bitrix'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON portal.* TO 'bitrix'@'localhost';
FLUSH PRIVILEGES;

Замените PASSWORD на пароль доступа к БД. Имя БД и пользователя можно изменить; в мастере установки укажите те же значения.

Push-server

Для работы портала нужен настроенный Push-сервер (сервис уже должен быть запущен). Настройки можно выполнить через административный раздел портала или через конфигурационный файл.

Вариант через файл: отредактируйте /var/www/html/bx-site/bitrix/.settings.php и добавьте (или дополните) секцию pull в возвращаемый массив. Замените #DOMAIN# на домен сайта и PUTTHEPRIVATEKEYHERE на тот же ключ, что задан в SECURITY_KEY в /etc/sysconfig/push-server-multi:

return array (
    'pull' => array(
        'value' => array(
            'path_to_listener' => 'http://#DOMAIN#/bitrix/sub/',
            'path_to_listener_secure' => 'https://#DOMAIN#/bitrix/sub/',
            'path_to_modern_listener' => 'http://#DOMAIN#/bitrix/sub/',
            'path_to_modern_listener_secure' => 'https://#DOMAIN#/bitrix/sub/',
            'path_to_mobile_listener' => 'http://#DOMAIN#:8893/bitrix/sub/',
            'path_to_mobile_listener_secure' => 'https://#DOMAIN#:8894/bitrix/sub/',
            'path_to_websocket' => 'ws://#DOMAIN#/bitrix/subws/',
            'path_to_websocket_secure' => 'wss://#DOMAIN#/bitrix/subws/',
            'path_to_publish' => 'http://localhost:8895/bitrix/pub/',
            'path_to_publish_web' => 'http://#DOMAIN#/bitrix/rest/',
            'path_to_publish_web_secure' => 'https://#DOMAIN#/bitrix/rest/',
            'nginx_version' => '4',
            'nginx_command_per_hit' => '100',
            'nginx' => 'Y',
            'nginx_headers' => 'N',
            'push' => 'Y',
            'websocket' => 'Y',
            'signature_key' => 'PUTTHEPRIVATEKEYHERE',
            'signature_algo' => 'sha1',
            'guest' => 'N',
        ),
    ),
    // ... остальные секции
);

После изменений перезапустите httpd:

sudo systemctl restart httpd

При корректной настройке в браузере появятся запросы к Push-серверу, например:

  • Request URL: ws://sitename/bitrix/subws/?CHANNEL_ID=...
  • Request Method: GET
  • Status Code: 101 Switching Protocols

Дополнительно

  • HTTPS — настройте сертификат (например, Let's Encrypt) в Nginx и при необходимости обновите пути в .settings.php на https:// и wss://.
  • SELinux — при необходимости настройте контексты и правила для каталогов и веб-серверов (restorecon, setsebool и т.п.).
  • Cron — настройте задания для агентов Битрикс по официальной документации.

Автоматизированная настройка

Компания Инитлаб использует автоматизированный подход для настройки серверов под Битрикс на базе РЕД ОС, что значительно сокращает время развёртывания и обеспечивает единообразие конфигураций. Все описанные выше шаги — от установки пакетов до настройки Push-server — выполняются автоматически с помощью плейбуков Ansible, что упрощает и сокращает время при подготовке нескольких серверов или повторном развёртывании стендов.

Кейсы

Кейс 1: Переезд корпоративного портала Росгосстрах Bitrix24 на РЕД ОС

Задача:
Корпоративный заказчик столкнулся с необходимостью миграции внутренней системы на отечественные решения в связи с новыми требованиями к импортозамещению. Портал Bitrix24 обслуживает более 500 сотрудников, используются модули CRM, задачи, документооборот.

Реализация:
Подготовлен стенд под РЕД ОС 7.3, настроен стек Ansible-плейбуками для автоматизации установки Nginx, PHP, MariaDB, Redis и Push-server. Проведено тестирование и оптимизация параметров под высокую нагрузку. Организован перенос корпоративной базы данных и пользовательских файлов с минимальным простоем (репликация БД, синхронизация файлов, проксирование запросов при переключении ДНС).

Результат:
Перевод выполнен без прерывания работы сотрудников. Внутренняя ИС теперь полностью соответствует требованиям импортозамещения, поддерживается штатными средствами РЕД ОС.

Кейс 2: Перенос сайта invest-in-crimea.ru на отечественную платформу

Задача:
Необходимо перенести публичный информационно-инвестиционный портал invest-in-crimea.ru с сервера под управлением CentOS 7 на сервер с РЕД ОС с полным отказом от иностранных ОС и решений.

Реализация:
На сервере с РЕД ОС развернут стек по схеме (Nginx + Apache + PHP + MariaDB + Redis). Выполнена миграция файлов и БД (Bitrix CMS). Проведён полный аудит конфигурации, выполнена оптимизация в соответствии с конфигурацией сервера. Настроены автоматические бекапы в объектное хранилище S3 с ротацией. Выполнено обновление ядра Битрикс с повышением версии PHP до актуальной.

Результат:
Сайт перенесен на отечественную инфраструктуру, минимизированы эксплуатационные риски и увеличена независимость от внешних платформ. Информационная безопасность и поддержка соответствуют регламенту, организовано резервное копирование.


Полезные ссылки


Материал подготовлен по открытой документации 1С-Битрикс и РЕД ОС. Для актуальных требований и команд сверяйтесь с официальными источниками под вашу версию ОС и продукта.

Добавить комментарий

Filtered HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <pre> <br> <h1> <h2 id> <h3 id>
  • Строки и абзацы переносятся автоматически.
  • Web page addresses and email addresses turn into links automatically.