К содержимому

Серверы и сайты как одна система.

Кластер объединяет серверы и сайты в единую инфраструктуру. Роли master и slave, общий .env, доступ к базам между серверами и файрвол, который настраивается сам.

  • 7 дней бесплатно
  • Без привязки карты
  • Оплата в рублях
Кластер «Магазин»

› Релиз на всех серверах кластера

  • web-01master
  • worker-01slave
  • worker-02slave
  • db-01MySQL · Redis
2
роли в топологии: master задаёт настройки, slave их получает
4
вида шаблонов: демоны, cron, .env и деплой-скрипт
1клик
чтобы развернуть шаблон на всех slave-серверах
0
портов MySQL и Redis, открытых всему интернету

Состав кластера

Добавили сервер — сеть настроилась сама.

Кластер — не метка на серверах: он связывает их между собой. Каждое изменение состава запускает фоновые задачи на всех участниках, и один недоступный сервер не блокирует остальные.

Файрвол между серверами

Правила UFW пересобираются сами на каждом участнике: порты MySQL и Redis открыты только адресам серверов кластера, не всему интернету.

Что обновляется UFW 3306 6379

MySQL между серверами

Сервер баз данных сам привязывает MySQL к своему сетевому адресу — не к 0.0.0.0. Сайт с соседнего сервера подключается без ручной настройки.

Что обновляется bind-address 127.0.0.1 IP сервера

Redis между серверами

Общий Redis для кэша и очередей: список разрешённых адресов следует за составом кластера. Новый сервер получает доступ, удалённый — теряет.

Что обновляется разрешённые IP UFW

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

Сайты добавленного сервера привязываются к кластеру автоматически, созданные позже — наследуют его. Убрали сервер — его сайты отвязаны.

Что обновляется существующие новые

Роли и шаблоны

Настройте один раз — примените ко всем.

Роли задают, куда уходят шаблоны: master — источник настроек, slave-серверы их получают. Переменные подставляются под каждый сервер и сайт, а результат виден до применения.

Топология

Роль назначается прямо на схеме

Вкладка «Топология» — живая схема кластера: нагрузка каждого сервера, его сайты и число развёрнутых на нём шаблонов. Роль переключается на самом узле.

  • Master — источник настроек, slave получает шаблоны
  • При сохранении каждый master связывается с каждым slave
  • CPU, RAM и диск каждого сервера — в реальном времени
  • Сайты узла и состояние их SSL
ТопологияМагазин · 4 сервера
Связей: 2
СерверРоль
web-01Laravel
master slave —
worker-01Воркер
master slave —
worker-02Воркер
master slave —
db-01База данных
master slave —
Каждый master связан с каждым slaveСохранить роли
Демоны и cron

Демон или cron — на все серверы

Опишите воркер очереди, Horizon или задачу по расписанию один раз. Панель запишет конфиг Supervisor или строку crontab на каждый slave-сервер и покажет реальный статус по каждому.

  • Шаблоны Supervisor-демонов с привязкой к типу сервера
  • Заготовки: Queue worker, Horizon, Reverb, Scheduler
  • Обновление и перезапуск на всех серверах — одной кнопкой
  • Удаление с серверов: сам шаблон остаётся в кластере
Шаблоны демоновМагазин · на все slave-серверы
Новый шаблон
horizonphp artisan horizon
Обновить все

Развёрнут на · цель: worker

worker-01
работает
worker-02
работает

Шаблоны cron

queue-restart0 */6 * * *
2 сервера
Развёрнут на slave-серверах2 / 2
.env

Один шаблон .env на все сайты

Шаблон рендерится отдельно для каждого slave-сайта: домен, имя базы и адрес master-сервера подставляются сами. До применения видно, какие ключи изменятся на каждом сайте.

  • Переменные и условия: server.role, website.domain, master.server.ip
  • Режимы: заменить файл целиком или изменить только ключи из шаблона
  • Текущий .env master-сайта загружается как основа шаблона
  • Сайты без изменений пропускаются
Синхронизация окруженияМагазин · шаблон .env
merge
APP_NAME={{ project.name }}
DB_HOST={{ master.server.ip }}
{% if server.role == 'slave' %}
QUEUE_CONNECTION=redis
{% endif %}

Предпросмотр по slave-сайтам

worker-01
применён · 2 ключа
worker-02
актуален — пропуск
1 применён · 1 пропущенПрименить
Синхронные деплои

Один пуш — деплой на несколько сайтов

Свяжите сайты в цепочку: после каждого деплоя master-сайта — из панели, по вебхуку или через MCP — следом деплоятся связанные сайты. Деплой-скрипт у них тоже общий: шаблон кластера с переменными под каждый сайт.

  • Связка master → зависимые сайты
  • Настраиваемая задержка между деплоями
  • Zero-downtime и история запусков на каждом сайте
  • Шаблон деплой-скрипта: загрузите скрипт с master и примените к slave-сайтам
Синхронный деплойshop.example.com
Связей: 2
Сайт и серверЗадержка
shop.example.comweb-01 · master
источник
shop.example.comworker-01 · slave
сразу
shop.example.comworker-02 · slave
30 с
Следом: 2 сайтаДобавить
1 / 4

Новая нода

Ещё один сервер — одной формой.

Кнопка «Добавить локацию» подключает ещё один сервер как воркер-ноду кластера: клонирует master-сайт и по порядку применяет всё, что уже настроено в кластере.

  • Сервер ставится с набором «Воркер» и входит в кластер как slave
  • .env копируется с master: база и Redis указывают на серверы кластера
  • Свои ключи .env для ноды — поверх скопированных
  • В конце проверка: база и Redis доступны, Horizon берёт задачи
ams-1198.51.100.24 · Воркер · кластер «Магазин»
В работе
Автоматика кластера6 / 6
  • Установка, набор «Воркер»slave
  • Клон сайта и .env с mastermain
  • Шаблон .env кластераmerge
  • Деплой-скрипт из шаблона
  • Horizon, демоны и cronSupervisor
  • Проверка: база, Redis, Horizon
Нода берёт задачи из очередиHorizon

В панели 203.0.113.21 Подключить готово за 4 мин 52 с

Соберите серверы в одну систему.

Серверы, сайты, роли и общие данные — под одной крышей, с автоматической синхронизацией.

  • 7 дней бесплатно
  • Без привязки карты
  • Поддержка на русском

Мы используем cookies и сервис веб-аналитики «Яндекс Метрика» (включая Вебвизор) для улучшения работы сайта. Подробности — в политике конфиденциальности.