Настройка серверной инфраструктуры
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-контейнеров, изменяемые данные должны находиться за его пределами.