развертывание веб-приложений PHP в реальном времени

Странный запрос, но ...

Вы можете поместить что-то вроде этого в /etc/init.d/anExecutableScript :

#!/bin/bash
if [ ! -f counter.txt ]; then
  echo 1 > counter.txt
  rebootcount=1
else
  rebootcount=`cat counter.txt`
fi

if [ $rebootcount -lt 20 ]; then 
  echo $((rebootcount+1)) > counter.txt
  reboot -f
else
  rm counter.txt
fi
3
08.03.2017, 17:36
1 ответ

Как насчет этого:

1 общедоступный балансировщик нагрузки (например, HAproxy)

Два внутренних веб-сервера.

  1. Удалите один веб-сервер из пула (с Haproxy это делается через сокет администратора. См. этот вопрос )
  2. Дождитесь завершения сеансов на этом сервере.
  3. Распаковать, распаковать и развернуть файлы проекта на отключенный сервер.
  4. Тестирование без балансировки нагрузки. (например, localhost)
  5. Повторно включить сервер.
  6. Повторите действия, начиная с шага 1, со вторым сервером.

«Отключение» сервера переводит сервер в режим обслуживания после ожидания истечения всех текущих подключений. Конечно, соединение не обязательно равно «сеансу». Таким образом, в зависимости от того, как вы обрабатываете сеансы, может потребоваться некоторая репликация сеанса между двумя серверами или отдельная сеансовая база данных (новый SPOF ), на которую полагаются оба сервера.

Таким образом, у ваших пользователей не будет простоев. Кроме того, вы получаете дополнительное преимущество в виде некоторой балансировки нагрузки.

К сожалению, настроить HAproxy таким образом может быть сложно.

2
27.01.2020, 21:25

Теги

Похожие вопросы