Настройка серверной инфраструктуры

Урок 1 из 6

25 мин

Настройка серверной инфраструктуры

29 мин

Корректная настройка серверной инфраструктуры является основой, на базе которой возможна корректная работа проекта. При неверной настройке разница во времени генерации страниц и нагрузке, создаваемой проектом, может вырастать на порядок.

Начинайте с серверной инфраструктуры

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

В этом уроке под "серверной инфраструктурой" мы подразумеваем общую архитектуру инфраструктуры, которая может быть достаточно сложной и включать в себя множество сервисов.

Правильная настройка окружения может требовать знания принципов работы с "1С-Битрикс: Управление сайтом" или Битрикс24. Однако квалифицированный системный администратор сможет успешно выполнить эту задачу.

BitrixEnv/BitrixVM

«1С-Битрикс: Веб-окружение» (BitrixEnv) служит для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформах.

картинка
  • BitrixEnv включает все необходимое ПО, сконфигурированное должным образом для корректной работы "1С-Битрикс: Управление сайтом" или Битрикс24.
  • BitrixVM — это тот же BitrixEnv, но уже запакованный под конкретную виртуализацию, подставляемый нами в виде образа.

BitrixEnv – отлично подходит для многих проектов: быстрый старт, оптимальные настройки, возможность кастомизировать под себя.

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

Для этого в BitrixEnv предусмотрен ряд файлов конфигурации, которые не будут изменены обновлениями:

  • /etc/httpd/bx/custom/z_bx_custom.conf - изменение настроек apache;
  • /etc/nginx/bx/site_settings/default/* - изменение настроек конкретного сайта в nginx, где default это имя сайта;
  • /etc/php.d/z_bx_custom.ini - изменение настроек php;
  • /etc/mysql/conf.d/z_bx_custom.cnf - Изменение настроек MySQL.

Полезно

Актуальная информация про установку BitrixEnv и готовые образы BitrixVM — здесь.

Свое окружение

Существуют ситуации, когда использование текущих версий BitrixEnv/BitrixVM не рекомендуется:

  • Использование кластера Master – Master.
  • Отсутствие у серверов проекта доступа к интернету.
  • Необходимость использования определенных пакетов и их версий, отличающихся от поставляемых с BitrixEnv.
  • Использование Docker-контейнеров.

В этом случае рекомендуем разворачивать окружение самостоятельно.

При создании своего окружения берите за основу BitrixEnv

Для своего окружения в качестве основы рекомендуем взять файлы конфигурации из BitrixEnv. Это значительно упростит настройку и повысит ее качество.

Обращайте внимание и на версии пакетов, которые используются в BitrixEnv.

Инструменты платформы для проверки окружения

картинка

Помимо использования примеров файлов конфигурации, в продукте предусмотрены инструменты контроля корректности настроек и производительности:

  • …/bitrix/admin/site_checker.php?lang=ru - проверка корректности настроек окружения, для Битрикс24 проверяется работа всех необходимых инструментов;
  • …/bitrix/admin/perfmon_panel.php?lang=ru - общая производительность системы;
  • …/bitrix/admin/perfmon_php.php?lang=ru - проверка параметров php;
  • …/bitrix/admin/perfmon_db_server.php?lang=ru - проверка параметров БД.

Всегда используйте инструменты проверки

После настройки окружения обязательно проверяйте работу проекта этими инструментами, насколько все хорошо, нет ли каких-то проблем, которые надо исправить.

Их использование позволит выявить большую часть проблем. Если проверка выявит несоответствие параметров – это будет подмечено красным и приведены рекомендации, которые позволят вам скорректировать настройки окружения, чтобы проект работал быстрее.

Самостоятельная проверка некоторых настроек

Есть ряд настроек, которые текущие тесты не проверяют и нужно контролировать самостоятельно:

  • Количество потоков php, можно ориентироваться на доступное количество памяти и ядер на сервере.
  • Отсутствие подключения модулей xdebug в продуктовой среде.
  • Минимизировано количество подключаемых модулей php/apache.
  • Достаточное количество памяти на серверах memcache/redis, которые используются для хранения кеша и сессий.

    Пример не достаточного объема памяти:

    картинка
  • Хранение сессий настроено не в БД.
  • 404 ошибки статического контента обрабатывает nginx.
  • Агенты выполняются на крон частично или полностью.
  • Хиты пользователей выполняются на всех нодах.
  • Нагрузка распределяется между всеми серверами БД.

    Список серверов БД на проекте:

    картинка

    Список подключенных серверов в Битрикс:

    картинка
  • В случае использования Docker-контейнеров, изменяемые данные должны находиться за его пределами.