Просмотров: 9029
Дата последнего изменения: 21.08.2023
Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет
Описание
Рассмотрим пул серверов из двух нод:
vm04 - основная нода ( на ней развернут пул )
vm03 - дополнительная нода ( на ней нет серверов )
Созданием веб-кластера, решаются следующие задачи:
Создание резервной копии.
Разделение веб-нагрузки на 2 ноды.
Через существующую реализацию кластера не решаются следующие задачи:
Горячая копия веб-сервера (вторая веб-нода) не будет полноценной заменой первой (без дополнительного вмешательства со стороны администратора сервера).
Возможность восстановления файлов, в случае их удаления. Синхронизация, в том числе и удаление, происходит достаточно быстро и удаление на любой ноде - приведет к удалению файла на всех.
В текущих настройках выделяются два типа веб-серверов:
Балансер: балансировщик, который проксирует запросы на все остальные ноды.
Веб: обработка php запросов.
Первый сервер в группе всегда - это роль балансера и веб. Все дополнительные сервера - это роль веб. В случае Виртуальной машины - роль балансера не может быть перенесена. Если ее нужно вынести на отдельный сервер, то читайте следующий урок.
Настройка web-ноды
Настройка web-ноды включает в себя следующие шаги:
Настройка синхрониазции файлов между нодами.
Конфигурация веб-служб для обработки запросов.
В BitrixVM представлено два сценария, которые настраивают веб-ноды:
Настраивает web-ноду по шагам:
на первом шаге запускается сценарий по настройке синхронизации файлов,
на втором настраивает веб-сервисы.
Шаги нужно разделить по времени если файлов много и перед запуском веб-сервисов хочется убедиться, что синхронизация выполнилась без ошибок.
Настраивает все за "один" шаг. В один запуск сценария.
Создание ssh ключей для пользователя bitrix. Это необходимо для работы rsync/ssh.
Создание сервисов для синхронизации lsyncd-<HOSTNAME>, где HOSTNAME - это
имя сервера
Уникальный идентификатор сервера в пуле.
на который будут отправлены файлы в случае их изменения, создания или удаления.
Например, если мы создаем web-ноду на сервере vm03, то на сервере vm04, будет создан сервис lsyncd-vm03; на сервере vm03 - lsyncd-vm04.
Создание каталогов под временные файлы lsyncd. Это делается через сервис systemd-tmpfiles. Конфигурационный файл - /etc/tmpfiles.d/lsyncd.conf.
Конфигурационные файлы lsyncd расположены по следующему пути /etc/lsyncd-<HOSTNAME>.conf.
Основное различие между серверами: для сервера с ролью балансера (в примере vm04) файлы конфигурации будут содержать подкаталоги из /etc и каталоги сайтов. Для всех остальных дополнительных нод файлы конфигурации содержат только каталоги сайтов.
Например, для конфигурации указанной выше. На сервере vm04 файл /etc/lsyncd-vm03.conf будет содержать следующие каталоги:
Примечание: Если на сервере больше чем один сайт, то все они будут синхронизированы.
Запуск сервиса и отслеживания статуса синхронизации. В сценарий включена проверка завершения синхронизации выбранных каталогов. Делается это через файл статуса для каждого запущенного сервиса:
/var/log/lsyncd/daemon-<HOSTNAME>.status
Настройка и конфигурация web-служб
Выполните следующие шаги:
Cоздайте логин для работы с базой. Работа с базой выполняется на удаленном сервере, поэтому требуется новый пользователь для работы с базой.
Пропишите новые параметров в конфигурацию сайта. Меняются как настройки файлов, так и создаются записи в базу в модуль cluster.
Создайте балансировщик на первой ноде пула (конфигурация NGINX сервиса). Балансирование нагрузки делается всегда на первой ноде в группе (в нашем примере vm04).
Конфигурационные файлы: /etc/nginx/bx/site_enabled/http_balancer.conf и https_balancer_<SITENAME>.conf
Настройки пула web-серверов содержаться в конфиге: /etc/nginx/bx/site_enabled/upstream.conf.
Нагрузка распределяется по IP адресу клиента. В обычной ситуации клиент с одного и того же IPv4 адреса будет попадать на один и тот же web-сервер.
Дополнительные конфиги для https_balancer* связаны с возможным существованием нескольких сайтов с разными сертификатами для одной конфигурации.
Для Apache добавьте страницу статуса, которая позволяет из модуля cluster следить за статусом подключенного сервиса
Выполните регистрацию нового веб-сервера в модуле Веб-кластер.
Дополнительно на этом шаге в пуле за сервером закрепляется новая роль - web сервера.