TYPO3 — отличное решение для веб-сайтов любых размеров, от небольших до корпоративных. Эта CMS позволяет с легкостью создавать и управлять многоязычными корпоративными сайтами для больших организаций. Такие веб-сайты могут масштабироваться и адаптироваться к любым возникающим потребностям.
Jelastic дает возможность сделать ваш сайт на TYPO3 не только очень гибким и доступным, но также стабильным и высокопроизводительным. Для достижения такого результата необходимо настроить высокодоступный кластера с двумя серверами приложений Apache, балансером NGINX, нодой Memcached и двумя реплицированными базами данных MySQL.
Сервер Memcached используется для хранения сессий Apache серверов. Благодаря резервному копированию сессий, если один из Apache серверов откажет, то второй “подберет” сессии с ноды Memcached и продолжит их обрабатывать. Балансер NGINX распределяет трафик внутри кластера. Кроме того, репликация главной и подчиненной MySQL баз улучшает производительность, повышает надежность доступности данных и отказоустойчивость вашего окружения.
Теперь давайте приступим к пошаговой настройке высокодоступного кластеризированного TYPO3 приложения.
Прежде всего, нужно создать необходимое окружение Jelastic и развернуть TYPO3 приложение.
1. Зарегистрируйтесь (если вы не сделали этого раньше) или войдите в ваш аккаунт Jelastiс.
2. Нажмите Создать окружение.
3. Выберите сервер приложений Apache, базу данных MySQL и ноду Memcached. Установите лимиты клаудлетов и введите имя окружения (например, typo-cluster). Нажмите Создать.
4. Подождите, пока окружение будет создано.
5. Пройдите на официальный веб-сайт TYPO3 и скачайте zip архив с последней версией приложения.
6. Используя Диспетчер дистрибутивов загрузите архив в панель управления.
7. Затем разверните его в только что созданное окружение.
Высокая доступность PHP приложения может достигаться путем применения кластеризации PHP сессий в облаке. Для поддержания работоспособности в случае отказа сервера приложений (в последующих шагах инструкции мы добавим еще один сервер) мы будем использовать Memcached.
1. Нажмите кнопку Конфигурация для сервера Apache. В менеджере конфигураций откройте файл etc > php.ini и включите Memcached модуль, добавив следующую строку:
2. Для активации поддержки работы с сессиями, добавьте следующие строки в блок Session конфигурационного файла php.ini:
Jelastic дает возможность сделать ваш сайт на TYPO3 не только очень гибким и доступным, но также стабильным и высокопроизводительным. Для достижения такого результата необходимо настроить высокодоступный кластера с двумя серверами приложений Apache, балансером NGINX, нодой Memcached и двумя реплицированными базами данных MySQL.
Сервер Memcached используется для хранения сессий Apache серверов. Благодаря резервному копированию сессий, если один из Apache серверов откажет, то второй “подберет” сессии с ноды Memcached и продолжит их обрабатывать. Балансер NGINX распределяет трафик внутри кластера. Кроме того, репликация главной и подчиненной MySQL баз улучшает производительность, повышает надежность доступности данных и отказоустойчивость вашего окружения.
Теперь давайте приступим к пошаговой настройке высокодоступного кластеризированного TYPO3 приложения.
A. Разворачивание TYPO3 приложения
Прежде всего, нужно создать необходимое окружение Jelastic и развернуть TYPO3 приложение.
1. Зарегистрируйтесь (если вы не сделали этого раньше) или войдите в ваш аккаунт Jelastiс.
2. Нажмите Создать окружение.
3. Выберите сервер приложений Apache, базу данных MySQL и ноду Memcached. Установите лимиты клаудлетов и введите имя окружения (например, typo-cluster). Нажмите Создать.
4. Подождите, пока окружение будет создано.
5. Пройдите на официальный веб-сайт TYPO3 и скачайте zip архив с последней версией приложения.
6. Используя Диспетчер дистрибутивов загрузите архив в панель управления.
7. Затем разверните его в только что созданное окружение.
Чтобы установить и запустить Ваше TYPO3 приложение, нужно отключить расширение zend_extension.
Перейдите к etc > php.ini файлу и закомментируйте следующую строку:
#zend_extension=/usr/lib64/php/modules/opcache.so
B. Настройка кластеризации PHP сессий
Высокая доступность PHP приложения может достигаться путем применения кластеризации PHP сессий в облаке. Для поддержания работоспособности в случае отказа сервера приложений (в последующих шагах инструкции мы добавим еще один сервер) мы будем использовать Memcached.
1. Нажмите кнопку Конфигурация для сервера Apache. В менеджере конфигураций откройте файл etc > php.ini и включите Memcached модуль, добавив следующую строку:
extension=memcached.so
2. Для активации поддержки работы с сессиями, добавьте следующие строки в блок Session конфигурационного файла php.ini:
session.save_handler = memcached
session.save_path = "<server>:11211"
Вместонужно прописать IP адрес Memcached сервера. Чтобы узнать его, нажмите кнопку Информация для Memcached ноды в окружении.
3. Сохраните изменения и Перезапустите сервер Apache.
С. Настройка баз данных
Следующий шаг — настройка репликации MySQL баз (главной и подчиненной) для защиты приложения от простоя или потери данных.
MySQL в окружении с развернутым TYPO3 будет использоваться как главная база. Для подчиненной базы нужно создать отдельное окружение.
Пройдите к панель управления Jelastic и создайте новое окружение с MySQL нодой, которая будет использоваться в качестве подчиненной базы. Назовите Ваше окружения (например, slave-db) и нажмите Создать.
А теперь давайте настроим каждую базу по отдельности:
Главная база данных
Как уже было упомянуто выше, мы используем MySQL в окружении с развернутым приложеним (т.е. typo-cluster) как нашу главную базу данных.
1. Нажмите кнопку Конфигурация для главной базы данных.
2. Перейдите к файлу my.cnf в папке etc и задайте следующие параметры, как показано на изображении ниже (нужно раскомментировать всего две строки):
server-id = 1 log-bin = mysql-bin binlog-format=mixed
Мы используем binlog-format=mixed, чтобы разрешить репликацию операций с внешними ключами.
Не используйте binlog_format =statement, иначе впоследствии будут возникать ошибки!
3. Сохраните изменения и Перезапустите MySQL для применения новых параметров конфигурации.
4. Нажмите кнопку Открыть в браузере возле главной MySQL базы. Войдите в панель администрирования MySQL, используя учетные данные, которые вы получили по электронной почте после создания окружения.
5. Пройдите к вкладке Репликация и нажмите Добавить подчиненного пользователя репликации.
6. Введите имя и пароль для подчиненного пользователя репликации и нажмите ОК.
Ваш подчиненный пользователь успешно создан.
Подчиненная база данных
Теперь давайте установим соединение между главной и подчиненной MySQL базами.
1. Нажмите кнопку Конфигурация для подчиненной базы данных.
2. Откройте файл etc > my.cnf и добавьте следующие строки:
server-id = 2 slave-skip-errors = all
Мы разрешаем нашей подчиненной базе пропускать все ошибки главной (slave-skip-errors = all), чтобы не прерывать нормальную работу в случае их возникновения.
Подобное не рекоммендуется на этапе разработки, чтобы иметь возможность находить баги и т.д. Однако в этой иструкции мы ориентируемся на этап продакшн, когда ваш код уже был протестирован. Любая ошибка на стороне главной базы, даже незначительная, может остановить подчиненную или привести к рассинхронизации.
3. Сохраните изменения и Перезапустите сервер подчиненной базы данных, чтобы применить новые параметры конфигураций.
4. Войдите в phpMyAdmin, используя данные учетной записи, которые Jelastic выслал Вам при создании окружения для подчиненной базы данных.
5. Перейдите к вкладке Репликация и нажмите настройка в разделе Репликация подчиненного сервера.
6. Настройте главный сервер (введите имя, пароль, и хост подчиненного пользователя репликации).
Теперь главный сервер настроен.
7. Нажмите на Control slave > Full start для подчиненного сервера, чтобы запустить Slave SQL и Slave IO потоки.
8. Проверьте таблицу состояния подчиненного сервера, чтобы убедиться, что все в порядке.
Как результат, репликация настроена и все данные синхронизируются между главной и подчиненной базами данных.
D. Установка TYPO3
Теперь мы можем завершить установку TYPO3.
1. Пройдите к панели управления Jelastic и нажмите кнопку Открыть в браузере для окружения с TYPO3. Начнется установка. Нажмите Continue.
2. В окне Connect to your database host:
- выберите MySQL/MySQLi драйвер
- заполните поля Username и Password учетными данным вашей главной базы данных (полученные по электронной почте при создании окружения)
- в поле Host введите адрес сервера базы
Нажмите Continue.
3. На этапе Select database создайте новую базу: введите имя для базы данных TYPO3 (например, typo_db) и нажмите Continue.
Благодаря репликации баз данных, которую мы настроили ранее, созданная база автоматически появится на обоих MySQL серверах, главном и подчиненном.
4. В следующем окне выберите Introduction package. Нажмите Continue.
5. Начнется установка. Подождите несколько минут для её завершения.
6. Наконец, введите пароль для доступа к админ панели TYPO3 и выберите цвет главной страницы TYPO3.
Поздравляем! TYPO3 установлен.
E. Настройка кластера
После того, как установка TYPO3 была успешно звершена, мы можем приступить к настройке высокодоступного кластера.
1. Откройте панель управления Jelastic и нажмите кнопку Изменить топологию окружения для окружения с TYPO3 приложением.
2. Добавьте еще один сервер приложений Apache, нажав кнопку + (выделена на изображении ниже). NGINX-балансер будет добавлен автоматически. Нажмите Применить.
- Причина, по которой мы добавляем второй сервер приложений только после установки в том, что таким образом мы синхронизируем все данные между двумя нодами Apache и избегаем повторной установки и настройки.
- Вы также можете настроить синхронизацию файлов между серверами кластера, используя инструкцию в документе Синхронизация файлов
Ваше высоконадежное и масштабируемое кластеризированное решение с установленным TYPO3 готово к использованию. Нажмите Открыть в браузере и приступайте к работе.
Используете другой метод кластеризации TYPO3? Пожалуйста, поделитесь опытом с нами в комментариях ниже.