Дата последнего изменения: 09.06.2025
Рассмотрим пул серверов из двух нод:

Созданием веб-кластера, решаются следующие задачи:
Через существующую реализацию кластера не решаются следующие задачи:
В текущих настройках выделяются два типа веб-серверов:
Первый сервер в группе всегда — это роль балансера и веб. Все дополнительные сервера — это роль веб. В случае Виртуальной машины — роль балансера не может быть перенесена. Если ее нужно вынести на отдельный сервер, то читайте следующий урок.
Настройка web-ноды включает в себя следующие шаги:
В BitrixVM представлено два сценария, которые настраивают веб-ноды:

Синхронизация файлов делается через lsyncd.
Принцип работы:
Каталоги, которые синхронизируются (с сервера с ролью балансер на остальные сервера):
- /etc/nginx/bx/conf,Между серверами с ролью веб — синхронизируются каталоги сайтов за исключением следующих подкаталогов:
- bitrix/cacheНастройка включает в себя следующие шаги:
Сервис именуется следующим образом: lsyncd-<HOSTNAME>, где HOSTNAME — это имя сервера Уникальный идентификатор сервера в пуле. , на который будут отправлены файлы в случае их изменения, создания или удаления.
Например, если мы создаем web-ноду на сервере vm03, то на сервере vm04 будет создан сервис lsyncd-vm03. А если на сервере vm03 — lsyncd-vm04.
Это делается через сервис systemd-tmpfiles. Конфигурационный файл — /etc/tmpfiles.d/lsyncd.conf.
/etc/lsyncd-<HOSTNAME>.conf.
Основное различие между серверами: для сервера с ролью балансера (в нашем примере это vm04) файлы конфигурации будут содержать подкаталоги из /etc и каталоги сайтов. Для всех остальных дополнительных нод файлы конфигурации содержат только каталоги сайтов.
Посмотрим на примере конфигурации указанной выше. На сервере vm04 файл /etc/lsyncd-vm03.conf будет содержать следующие каталоги:
sync {
default.rsyncssh,
host = "vm03",
source = "/etc/nginx/bx/",
targetdir = "/etc/nginx/bx/",
exclude = {
"site_enabled/http_balancer*.conf",
"site_enabled/https_balancer*.conf",
"site_enabled/upstream.conf",
"site_enabled/pool_manager.conf",
"site_ext_enabled/",
"server_monitor.conf",
"pool_passwords",
}
....
}
-- httpd
sync {
default.rsyncssh,
host = "vm03",
source = "/etc/httpd/bx/conf/",
targetdir = "/etc/httpd/bx/conf/",
}
sync {
default.rsyncssh,
host = "vm03",
source = "/home/bitrix/www/",
targetdir = "/home/bitrix/www/",
exclude = {
"bitrix/cache/",
"bitrix/managed_cache/",
"bitrix/stack_cache/",
"upload/resize_cache/",
"*.log", // учтите, что исключая "*.log", исключаются компоненты и модули, например bizproc.log
},
А конфигурационный файл на сервере vm03 /etc/lsyncd-vm04.conf будет содержать каталоги:
sync {
default.rsyncssh,
host = "vm04",
source = "/home/bitrix/www",
targetdir = "/home/bitrix/www",
exclude = {
"bitrix/cache/",
"bitrix/managed_cache/",
"bitrix/stack_cache/",
"upload/resize_cache/",
"*.log", // учтите, что исключая "*.log", исключаются компоненты и модули, например bizproc.log
"bitrix/.settings.php",
"php_interface/*.php",
...
}
В сценарий включена проверка завершения синхронизации выбранных каталогов. Делается это через файл статуса для каждого запущенного сервиса: /var/log/lsyncd/daemon-<HOSTNAME>.status
Проверить статус сервиса lsyncd можно так:
systemctl status %lsyncd-host%
где %lsyncd-host% берется из названия файла конфигурации lsyncd для хоста.
Чтобы найти все конфигурационные файлы для lsync используйте команду:
// ищем на хосте vm04 [root@vm04 ~]# ls -latr /etc | grep lsync // в ответ получаем список файлов: -rw-r--r-- 1 root root 286 Apr 12 2017 lsyncd.conf -rw-r--r-- 1 root root 2546 Jan 17 11:25 lsyncd-vm03.conf
Видим, что наш текущий хост vm04 синхронизируется с хостом vm03 (файл lsyncd-vm03.conf). Статус lsyncd для этой синхронизации проверяем так:
[root@vm04 ~]# systemctl status lsyncd-vm03 // ответ ● lsyncd-vm03.service - Live Syncing (Mirror) Daemon for vm03 Loaded: loaded (/etc/systemd/system/lsyncd-vm03.service; enabled; vendor preset: disable Active: active (running) since Wed 2024-01-17 12:22:33 MSK; 1s ago
Выполните следующие шаги:
Конфигурационные файлы: /etc/nginx/bx/site_enabled/http_balancer.conf и https_balancer_<SITENAME>.conf
Настройки пула web-серверов содержаться в конфиге: /etc/nginx/bx/site_enabled/upstream.conf.
Дополнительно на этом шаге в пуле за сервером закрепляется новая роль — web сервера.