0  /  201

Виртуальная машина BitrixVM

Содержание

Виртуальная машина VMBitrix v7.x

Состав
«1C-Битрикс: Виртуальная машина»

«1C-Битрикс: Виртуальная машина» - бесплатный программный продукт, готовый к немедленному использованию виртуальный сервер, полностью настроенный, протестированный и адаптированный для оптимальной работы как с продуктами «1С-Битрикс», так и с любыми PHP-приложениями.

Виртуальная машина сэкономит время и силы на правильное развертывание и администрирование сайта или внутреннего информационного ресурса на базе продуктов «1С-Битрикс».

С помощью специальных ВМ-решений вы можете быстро получить оптимально сконфигурированный сервер, не уступающий по производительности VMBitrix, а по масштабируемости - превосходящий виртуальную машину «1С-Битрикс». Пакеты подготовлены специалистами «1С-Битрикс» и доступны для скачивания и использования.

В «1C-Битрикс: Виртуальная машина» входит:

  • mysql-server 5.*
  • web-server (Apache 2.4.*)
  • php 7.х
  • nginx 1.18.0
  • memcached
  • stunnel
  • catdoc
  • xpdf
  • munin
  • nagios
  • sphinx


Решения для оптимизации
установки продуктов «1С-Битрикс»

  1. «1С-Битрикс: Веб-окружение» - Linux (BitrixEnv)

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

    Скачать bitrix-env.sh.

  2. «1C-Битрикс: Виртуальная машина 7.x»

    «1C-Битрикс: Виртуальная машина 7.x» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести свои, уже готовые проекты.

    Дистрибутивы VMBitrix доступны для:

    • VMWare;
    • OVA (Sphere и др);
    • VirtualBox;
    • HyperV.

    Скачать образы.

  3. Amazon Elastic Compute Cloud (Amazon EC2)

    Amazon EC2 - это веб-сервис, предоставляющий масштабируемые вычислительные мощности и созданный для быстрого и простого разворачивания веб-приложений на площадках (в облаках) Amazon. Специалистами «1С-Битрикс» подготовлены предконфигурированные образы VMBitrix (AMI-образы) для быстрого запуска приложений «1С-Битрикс» в Amazon EC2, которые включают:

    • CentOS 7.x;
    • NGINX + Apache2;
    • PHP 7.х;
    • MySQL5 with InnoDB support;
    • Mail server agent;
    • UNIX-like Control Menu with common tasks;
    • IP address via DHCP, or configured by Amazon Elastic IP;
    • HTTPS support.

    Список ami-образов по регионам можно посмотреть на странице VMBitrix.



Работа с файлами
в BitrixEnv

Работа с файлами в BitrixEnv осуществляется по протоколам SSH / SFTP. Протоколы FTP и SCP по умолчанию не поддерживаются.


Внимание! «1C-Битрикс: Виртуальная машина» версии 7.x также позволяет управлять масштабированием серверов пула в простом визуальном режиме в административном интерфейсе с помощью модуля Управление масштабированием.

Глава предназначена для администраторов и пользователей продуктов «1С-Битрикс», устанавливающих для ознакомления либо переносящих готовые проекты на виртуальную машину VMBitrix. Аналогичным способом можно переносить проекты с удаленного сайта на виртуальную машину, между виртуальными машинами и т.д. В документе рассматриваются процедуры установки всех необходимых приложений для работы продукта на виртуальной машине VMBitrix.

Описание установки ПО виртуализации не входит в данное руководство. По всем вопросам установки этой программы обращайтесь к документации соответствующего ПО.

Если у вас возникнут вопросы по процессу установки продуктов компании «1С-Битрикс», вы можете обратиться в службу Технической поддержки. Обсуждение работы VMBitrix доступно на специализированном форуме или в группе Виртуальные машины Битрикс социальной сети компании «1С-Битрикс».



Важные замечания

Внимание! Информацию по устаревшим версиям «1C-Битрикс: Виртуальная машина» можно прочитать тут: версия 5.х и версия 4.3.

Внимание! Все названия хостов, адреса e-mail, серверов, ip-адреса и т.п информация в учебном курсе указываются в качестве примера. Поэтому при настройке виртуальной машины необходимо использовать свои данные.

Внимание! Если в VMBitrix или в BitrixEnv меняется ssl-сертификат с установленного по умолчанию на свой, и сертификат запаролен, то это вызовет проблему в работе мастеров и при перезапуске сервисов. Будет постоянно запрашиваться ввод пароля. Чтобы избежать подобных проблем, нужно удалить пароль из сертификата:
/path/to/openssl rsa -in /path/to/originalkeywithpass.key -out /path/to/newkeywithnopass.key


Что нового?

VMBitrix v7.5.х (Стабильная версия)


Список изменений v7.5.1 (апрель 2022)

Список изменений v7.5.0 (март 2021)

Обсуждение стабильной версии 7.5.x на форуме.



VMBitrix v7.4.х (Стабильная версия)


Список изменений v7.4.4 (ноябрь 2020)

Список изменений v7.4.3 (ноябрь 2019)

Список изменений v7.4.2 (октябрь 2019)

Список изменений v7.4.1 (август 2019)

Список изменений v7.4.0 (июль 2019)

Обсуждение стабильной версии 7.4.x на форуме.



VMBitrix v7.3.х (Стабильная версия)


Список изменений v7.3.4 (декабрь 2018)

Список изменений v7.3.3 (сентябрь 2018)

Список изменений v7.3.2 (август 2018)

Список изменений v7.3.1 (июль 2018)

Список изменений v7.3.0 (май 2018)

Обсуждение стабильной версии 7.3.x на форуме.



VMBitrix v7.4.1х (БЕТА версия)


Список изменений v7.4.13 бета (март 2021)

Список изменений v7.4.12 бета (февраль 2021)

Список изменений v7.4.11 бета (февраль 2020)

Список изменений v7.4.10 бета (декабрь 2019)


VMBitrix v7.3.1х (БЕТА версия)


Список изменений v7.3.14 бета (июнь 2019)

Список изменений v7.3.13 бета (январь 2019)

Список изменений v7.3.12 бета (ноябрь 2018)

Список изменений v7.3.11 бета (сентябрь 2018)

Список изменений v7.3.10 бета (август 2018)

Обсуждение бета-версии VMBitrix на форуме.
Как установить бета-версию BitrixEnv/VMBitrix.CRM.



Архив изменений


BitrixVM/BitrixEnv v7.2.x


Список изменений v7.2.2 (декабрь 2017)

Список изменений v7.2.1 (декабрь 2017)

Список изменений v7.2.0 (декабрь 2017)

Обсуждение версии 7.2.x на форуме.



Установка «1С-Битрикс: Веб-окружение» - Linux (BitrixEnv)

Для кого?

«1С-Битрикс: Веб-окружение» - Linux (BitrixEnv) будет полезно:

  • Для пользователей и разработчиков, которые использовали продукт «1С-Битрикс: Виртуальная машина» в процессе подготовки сайта и столкнулись с проблемой переноса конфигурации на хостинг или на невиртуальное оборудование и потерей производительности.
  • Для специалистов хостинг-партнеров, планирующих создать шаблоны различных VPS для продуктов «1С-Битрикс».
  • Для системных администраторов, которым требуется быстро подготовить производительную платформу для установки или миграции сайтов на основе «1С-Битрикс».
  • Для программистов и системных администраторов, которым требуется быстро развернуть кластер для проектов на основе «1С-Битрикс».

«1С-Битрикс: Веб-окружение» - Linux позволяет быстро и с минимальными затратами развернуть оптимальное окружение для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS 7 (x86_64):

  • mysql-server 5.7.x или 8.0.x
  • web-server (Apache 2.4.*)
  • php 7.х или php 8.x
  • nginx 1.18.0
  • memcached
  • stunnel
  • catdoc
  • xpdf
  • munin
  • nagios
  • sphinx


Установка
на CentOS 7

Рассмотрим установку «1С-Битрикс: Веб-окружение» - Linux на оборудовании с уже установленной CentOS 7 (Minimal) (x86_64).

  1. Авторизуемся на сервер под административным аккаунтом root и обновляем все пакеты системы:
    yum clean all && yum update
    
  2. Загружаем скрипт «1С-Битрикс: Веб-окружение» - Linux и запускаем его командами:

    wget https://repo.bitrix.info/yum/bitrix-env.sh && chmod +x bitrix-env.sh && ./bitrix-env.sh
    

    Примечание: Если на сервере нет утилиты для загрузки файлов wget, то ее можно установить командой yum install wget

  3. Далее необходимо согласиться на отключение SELinux (если SELinux включен в системе) и перезагрузить машину командой reboot:

  4. После перезагрузки сервера снова продолжите установку BitrixEnv:

    ./bitrix-env.sh
    

  5. При первом входе на сервер с логином root будет предложено сменить пароль у пользователя bitrix:

  6. Далее нужно создать пул (1. Create Management pool of server) и можно приступать к работе:

    Внимание! В VMBitrix версии 7.x+ нужно обязательно создать пул (1. Create Management pool of server). Мастер создания пула откроет все необходимые порты в CentOS для корректной работы сервисов продуктов «1С-Битрикс»:
    • 22 – ssh доступ;
    • 80 / 443 – http / https web-сервер;
    • 8890 / 8891 – http/https ntlm;
    • 8893 / 8894 – http/https сервер мгновенных сообщений;
    • 5222 / 5223 – http/https xmpp-сервер.

    Если пул не создан, то открыты только 22, 80 и 443 порты.
    Внутри машины могут использоваться дополнительные порты для служб и сервисов, но они не открываются наружу.

  7. Cервер готов для дальнейшего использования.
  8. После всех настроек сервера в целях безопасности не забудьте выйти из учетной записи root:
    • Выйти в консоль, выбрав в меню 0. Exit (или нажать Ctrl+C)
    • И затем в консоли выполнить команду exit


«Бесшумная» установка
BitrixEnv

Silent mode

С версии 7.1 появилась возможность создания пула в «бесшумном» режиме, когда после установки окружения VMBitrix запускается сразу создание пула с нужным именем хоста и паролем для root MySQL.

./bitrix-env.sh [-s] [-p [-H hostname]] [-F] [-m mysql_version] [-M mysql_root_password]
где:
  • -s – Тихий режим установки. Не задавать вопросы (Silent or quiet mode. Don't ask any questions).
  • -p – Создать пул после установки окружения (Create pool after installation of bitrix-env).
  • -H – Имя хоста (Hostname for for pool creation procedure).
  • -F – Будет использоваться в качестве файрвола firewalld.
  • -I – Будет использоваться в качестве файрвола iptables (по умолчанию).
  • -M – Пароль root для MySQL (Mysql password for root user).
  • -m 5.7 – установить MySQL 5.7 (по умолчанию).
  • -m 8.0 – установить MySQL 8.0.

Пример использования:

Запустить установку окружения в «бесшумном» режиме, использовать файрвол firewalld, создать пул с именем хоста server1, MySQL 8.0 и задать пароль root пользователя MySQL - 111111.

./bitrix-env.sh -s -p -H server1 -F -m 8.0 -M '111111'

Узнать список всех ключей запуска установки можно командами для VMBitrix и VMBitrix.CRM соответственно:

./bitrix-env.sh -h
./bitrix-env-crm.sh -h


Как управлять
BitrixEnv

Для перехода к выполнению любого действия в меню виртуальной машины введите число и нажмите Enter. Например, для настройки локального виртуального сервера в строке наберите 2 (Manage localhost) и нажмите Enter.

Чтобы вернуться из командной строки (если нажали 0. Exit или Ctrl+C) обратно в меню VMBitrix, введите в консоли команду:

/root/menu.sh


Работа с файлами
в BitrixEnv

Работа с файлами в VMBitrix осуществляется по протоколам SSH / SFTP. Протоколы FTP и SCP по умолчанию не поддерживаются.



Запуск виртуальной машины BitrixVM

  Запуск виртуальной машины BitrixVM

Внимание! Если у вас при старте образа виртуальной машины появляется черный экран и сразу пропадает, а BitrixVM не стартует, проверьте поддержку аппаратной виртуализации VT-x/VT-d вашим процессором. Включить виртуализацию VT-x/VT-d можно в BIOS вашего компьютера. Также проверьте битность вашей операционной системы, на которой запускается виртуальная машина, – она должна быть 64-битной.

  1. Загрузите подходящий вам дистрибутив настроенной виртуальной машины BitrixVM.

  2. Загруженный архив распакуйте в любую папку, например, С:\BitrixVM\ и запустите виртуальную машину с помощью подходящего ПО:

    Примечание: Если при работе с VMWare Player виртуальная машина не запускается, откройте её настройки [dw](Edit virtual machine settings)[/dw][di] [/di] и во вкладке [dw]Options[/dw][di] [/di] укажите гостевую операционную систему:
    • Guest operating system: Linux
    • Version: CentOS 64-bit

  3. Начнется процесс загрузки операционной системы, установленной на виртуальной машине. В конце загрузки откроется окно:

  4. При первом запуске виртуальной машины BitrixVM будет предложено сменить пароли суперпользователя root и пользователя bitrix:

    Примечание: Для суперпользователя root по умолчанию задан пароль bitrix.

    Если у вас версия VMBitrix.CRM, то пароль пользователя root будет указан на экране.

    • В строке localhost login укажите логин: root, а в поле Password пароль: bitrix.
    • В строке (current) UNIX password укажите текущий пароль (bitrix) и нажмите Enter.
    • Введите новый пароль в строке Enter new UNIX password и нажмите Enter.
    • Повторите ввод нового пароля в строке Retype new UNIX password и нажмите Enter.

    Аналогично происходит смена пароля пользователя bitrix:

    Примечание: Сменить пароль пользователя bitrix можно позднее в панели управления виртуальным сервером с помощью пункта меню 1. Create Management pool of server - Change bitrix password.

  5. Далее нужно обязательно создать пул управления сервером с помощью меню 1. Create Management pool of server.

    Внимание! В BitrixVM версии 7.x+ нужно обязательно создавать пул (1. Create Management pool of server). Мастер создания пула откроет все необходимые порты в CentOS для корректной работы сервисов продуктов «1С-Битрикс».
    Если у вас в меню нет пунктов, кроме как 0. Exit и в таблице сетевых интерфейсов IP4: Undefined - это значит, что у вас проблема с сетевым адаптером виртуальной машины или в локальной сети нет DHCP сервера. Проверьте настройки сетевого адаптера виртмашины или попробуйте задать ip-адрес вручную.

  6. Виртуальный сервер готов для дальнейшего использования.

  7. После всех настроек виртуального сервера в целях безопасности не забудьте выйти из учетной записи root:
    • Выйти в консоль, выбрав в меню 0. Exit (или нажать Ctrl + C)
    • И затем в консоли выполнить команду exit



  Как управлять BitrixVM

Для перехода к выполнению любого действия меню виртуальной машины введите число и нажмите Enter. Например, для настройки локального виртуального сервера в строке наберите 2 (Manage localhost) и нажмите Enter.

Чтобы вернуться в вашу ОС, нажмите Ctrl+Alt (VMWare Player).

Чтобы вернуться из командной строки (если нажали 0. Exit) обратно в меню виртуальной машины, введите в консоли команду:

/root/menu.sh

Если вы запускаете несколько хостов в одной BitrixVM на локальном компьютере или в пределах вашей локальной сети, то можно указать для этих сайтов вместо IP свои выдуманные домены, предварительно прописав в файле hosts операционной системы или на сервере DHCP вашей сети. Тогда вы сможете обращаться к сайтам по доменным именам, но только в пределах вашего компьютера или вашей локальной сети.

Если при работе с BitrixVM возникли ошибки работы мастеров, то логи мастеров можно просмотреть в папке /opt/webdir/temp/.

Примечание: При возникновении проблем с сетевым адаптером VMWare Player или VirtualBox (например не открывается сайт по адресу виртуальной машины) необходимо перейти в настройки сетевого адаптера (Virtual Machine > Removable Devices > Network Adapter > Settings...), [dw]поменять режим работы адаптера[/dw][di]

[/di] с NAT на Bridged (или наоборот). И перезапустить виртуальный сервер, выбрав пункт меню 2. Manage localhost > 4. Reboot server.



VMBitrix.CRM

VMBitrix.CRM собирается на базе BitrixVM. Это готовое решение для CRM – внутри машины тоже самое, что и в основной машине BitrixVM.

Но есть отличия:

  1. Из меню VMBitrix.CRM убрано:

    • управление хостами
    • расширенное управление сайтами (убрано создание, удаление, ntlm, композит для nginx)
    • управление MySQL и репликацией
    • управление memcache, sphinx
    • управление web ролью и мониторингом
  2. При старте VMBitrix.CRM сразу:

    • создается пул
    • настроен memcache
    • установлен и работает push-сервер

Скачать VMBitrix.CRM можно с сайта 1С-Битрикс под нужный вид виртуализации.

Далее нужно только установить Битрикс24.CRM (или восстановить копию), настроить почту и ssl-сертификат. И у вас готовый Битрикс24 с CRM!

Для отдельного сервера на базе CentOS 7 можно загрузить скрипт установки VMbitrix.CRM через консоль и запустить его командами:

wget http://repo.bitrix.info/yum/bitrix-env-crm.sh && chmod +x bitrix-env-crm.sh && ./bitrix-env-crm.sh


Также для VMBitrix.CRM есть вариант поставки exe-файла для тех, кто хочет в пару кликов познакомиться с Битрикс24.CRM и не обладает достаточными техническими знаниями. Совместим с Windows 7, 8, 10, Windows Server 2008 2012 2016.

Этот инсталлятор:

  • скачает и установит VirtualBox
  • скачает образ виртуальной машины VMBitrix.CRM и импортирует его в VirtualBox
  • установит сервис по вашему желанию
  • запустит машину и получит IP

После останется установить Битрикс24.CRM или восстановить копию проекта.

Примечание: Если устанавливается как сервис, то при перезагрузке компьютера виртуальная машина будет запущена в фоновом режиме. Для работы как сервиса у пользователя Windows должен быть установлен пароль.



Установка и перенос продуктов «1С-Битрикс» в BitrixVM/BitrixEnv

Установка и перенос продуктов «1С-Битрикс» может быть осуществлена несколькими способами.

Установка дистрибутива сайта в BitrixVM/BitrixEnv

Для установки продукта «1С-Битрикс» нужно:

  1. Перейти по адресу bitrix url, указанному в BitrixVM или BitrixEnv в браузере. Откроется страница с выбором варианта установки:

  2. Для продолжения необходимо выбрать один из вариантов:

    • Установить - в этом случае будет запущен мастер, который позволяет скачать и установить новый сайт средствами продуктов компании «1C-Битрикс». Шаги этого варианта аналогичны шагам, рассмотренным в главе Установка продукта с помощью BitrixSetup.

    • Восстановить копию - в этом случае будет запущен мастер, с помощью которого можно будет перенести существующий проект (восстановить проект из резервной копии).



Перенос продукта «1C-Битрикс» в виртуальную среду BitrixVM/BitrixEnv

Подготовка

Что должно быть готово перед переносом

Для переноса сайта с хостинга (облака) или локального сервера на виртуальную среду BitrixVM или BitrixEnv необходимы: архив сайта и настроенная виртуальная среда BitrixVM или BitrixEnv.

После успешного создания архива сайта он будет доступен на странице [dw]Список резервных копий[/dw][di][/di] (Настройки > Инструменты > Список резервных копий) .

Воспользуйтесь командой [dw]Получить ссылку для переноса[/dw][di][/di] в меню действий (ссылка доступна только для локально размещенной копии) и в появившемся окне скопируйте её в буфер обмена:

Также можно скачать архив сайта на локальный компьютер с помощью пункта меню Скачать.

  Перенос сайта

Перенос сайта в виртуальную среду BitrixVM/BitrixEnv

  1. Запустить предварительно настроенную виртуальную среду BitrixVM или BitrixEnv.

  2. В адресной строке браузера ввести http://адрес_виртуальной_машины/ (можно указать домен или ip-адрес).

  3. Откроется мастер установки продукта «1С-Битрикс», где нужно выбрать [dw]Восстановить копию[/dw][di].[/di]:

  4. На этапе загрузки резервной копии указать место хранения архива сайта (в данном случае - ввести ссылку из буфера обмена, полученную на странице со списком резервных копий сайта):

    Примечание: Также есть возможность загрузить архив из облака «1С-Битрикс» (понадобится лицензионный ключ с действующей лицензией), с локального компьютера или из корневой папки сервера в зависимости от того, где хранится ваша резервная копия.

  5. После скачивания архива, если архив был зашифрован, то будет предложено [dw]ввести пароль[/dw][di][/di]:
  6. Далее необходимо настроить подключение к базе данных:

    Настройки подключения к MySQL по умолчанию в BitrixVM/BitrixEnv берутся из /home/bitrix/www/bitrix/php_interface/dbconn.php.

    Можно указать собственные параметры подключения к MySQL - в этом случае необходимо еще выбрать опцию Создать базу данных, если не существует.

  7. После успешного восстановления базы данных в целях безопасности необходимо Удалить локальную резервную копию и служебные скрипты, нажав на [dw]одноименную кнопку[/dw][di][/di].
  8. Перенос продукта «1C-Битрикс» на виртуальную среду BitrixVM/BitrixEnv [dw]закончен[/dw][di][/di].

Возможная ошибка

Ошибка "Call to undefined function mysqli_init()"

При переходе на новую версию платформы BitrixVM/BitrixEnv может возникнуть ошибка - "Call to undefined function mysqli_init()". Причина ошибки в том, что раньше в БД MySQL использовалось расширение mysql (объявлено устаревшим в PHP 5.5.0), а в новых версиях - mysqli.

Решение проблемы:

  1. В файле \bitrix\php_interface\dbconn.php добавить:
    define("BX_USE_MYSQLI", true); 
    
  2. В файле \bitrix\.settings.php:
    'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
    
    поменять на:
    'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
    
  3. Проверить наличие в файле /etc/php.d/30-mysqli.ini (или в подобном):
    extension=mysqli.so
    
  4. Cделать рестарт httpd:

    • CentOS 6:
      service httpd restart
      
    • CentOS 7:
      systemctl restart httpd.service
      


1. Управление серверами пула (1. Manage servers in the pool)

Для начала работы с сервисами нужно создать и настроить пул сервера. Для этого нужно выбрать пункт главного меню 1. Create Management pool of server и ввести название сервера в данном пуле.

Мастер создания пула откроет все необходимые порты в CentOS для корректной работы сервисов продуктов «1С-Битрикс»:

  • 22 – ssh доступ;
  • 80 / 443 – http / https web-сервер;
  • 8890 / 8891 – http/https ntlm;
  • 8893 / 8894 – http/https сервер мгновенных сообщений;
  • 5222 / 5223 – http/https xmpp-сервер.

Если пул не создан, то открыты только 22, 80 и 443 порты.

Для большинства проектов достаточно всего лишь одного сервера в пуле, который создается на начальном этапе установки BitrixEnv (см выше).

Добавление дополнительных серверов в пул (кластер) может понадобится для масштабирования системы, для распределения нагрузки между несколькими физическими серверами. Это делается назначением специальных ролей каждому серверу в пуле. Если у вас нет дополнительных физических серверов, то необходимости добавления их в пул нет.

Внимание! Сервер в пуле - не значит сайт! Если вам нужно создать или добавить веб-сайт в BitrixEnv, то делать это нужно в меню Управление сайтами (Configure pool sites).

После создания пула в основном меню добавятся новые пункты в главном меню:



1. Добавление нового хоста в пул (1. Add new host to the pool)

Внимание! Добавление физических серверов в пул (кластер) нужно для масштабирования системы, для распределения нагрузки между несколькими серверами. Если у вас нет дополнительных физических серверов, то необходимости добавления их в пул нет.

На добавляемом сервере в пул (кластер) должно быть установлено BitrixVM или BitrixEnv.

Внимание! Сервер - не значит сайт! Если вам нужно создать или добавить веб-сайт в BitrixEnv, то делать это нужно в меню Управление сайтами (Configure pool sites).


Добавление нового сервера в пул (кластер) осуществляется с помощью меню 1. Manage servers in the pool > 1. Add new host to the pool.

Для этого необходимо задать ip-адрес или DNS-имя сервера, выбрать короткое имя (в примере - server2) и ввести пароль root для подключаемого сервера:

Примечание: Имя сервера можно выбрать любое, можно указать, что хотите: bx1, server10, mysite.com (можно и имя домена, если он один) и т.д.

Таким образом, можно добавлять любое количество серверов в пул:

Теперь можно управлять любым сервером пула с одной машины.

Примечание: Если зайти на присоединенный к пулу сервер, то система оповестит о нахождении данного сервера в пуле и невозможности отображения управляемого меню:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



2. Удаление хоста из пула (2. Remove host from the pool)

Удаление хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage servers in the pool > 2. Remove host from the pool . Если на хосте есть хоть какие-то роли, то удаление хоста невозможно.

Для этого необходимо задать ip-адрес или DNS-имя хоста удаляемого из пула сервера:

После подтверждения сервер будет удален из пула:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



3. Перезапуск хоста (3. Reboot host)

Перезагрузка хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage servers in the pool > 3. Reboot host.

Для этого необходимо задать имя хоста (в данном примере - server2) и согласиться на перезапуск сервера:



4. Обновление пакетов на хосте (4. Update packages on host)

С помощью менеджера пула можно удаленно обновлять Веб-окружение и компоненты системы на любом хосте, входящем в пул.

Например, в пул добавлена виртуальная машина версии 7.4.0, нам нужно обновить ее до 7.4.х.

  • Выбираем пункт меню 1. Manage servers in the pool > 4. Update packages on host, система спросит имя хоста для обновления и выбор, что обновлять – только окружение (bitrix) или полностью систему и окружение (all):

  • Менеджер пула запустит задачу обновления Веб-окружения на удаленном хосте:

    Важно! В процессе обновления BitrixVM версии PHP и MySQL автоматически не обновляются. Обновить их можно в ручном режиме с помощью пункта меню виртуальной машины 1. Manage hosts in the pool - 8. Update PHP and MySQL.

  • Через некоторое время система на удаленном хосте обновится до последней версии (в данном примере - 7.4.3)

Таким же образом можно обновлять включенные в пул виртуальные машины ранних версий.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



5. Смена пароля пользователя bitrix (5. Change 'bitrix' user password on host)

Смена пароля для пользователя bitrix осуществляется через пункт меню 1. Manage servers in the pool > 5. Change 'bitrix' user password on host.

Будет выдан запрос имени хоста, на котором нужно сменить пароль пользователя bitrix, новый пароль и согласие на смену пароля:

Внимание! Сменить пароль пользователя root через меню виртуальной машины нельзя. Для этого необходимо воспользоваться системными командами ОС. Например, для Centos 6/7 консольная команда смены пароля пользователя root: passwd.



6. Настройка таймзоны в пуле (6. Configure pool timezone)

Настройка таймзоны – очень важный параметр, который обязательно нужно проверить и при необходимости настроить правильно. Параметр влияет на синхронизацию с 1С, календари, заказы и многое другое, где требуется дата и время.

Дата и время на сервере – это не одна конкретная дата и время, это фактически три различных даты и три различных времени со своими часовыми поясами:

  • Время сервера
  • Время PHP
  • Время MySQL

Примечание: По умолчанию в BitrixVM выставлена зона Europe/Moscow (MSK, UTC+03).

Смена таймзоны происходит через пункт меню веб-окружения 1. Manage servers in the pool > 6. Configure pool timezone, и меняет дату и время, в трех местах сразу, т.к это очень важный момент, что все три места работают с одинаковыми параметрами времени и даты.

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

  • После этого будет предложено также изменить таймзону для PHP:

  • И в заключение нужно подтвердить изменение таймзоны для всех серверов, входящих в пул:

Примечание: Корректность установки времени у PHP и MySQL можно проверить также через административный веб интерфейс продуктов «1C-битрикс»: Настройки > Инструменты > Проверка системы.



7. Удаление конфигурации пула (7. Remove pool configuration)

Внимание При удалении конфигурации пула происходит сброс информации о нодах и настроек подключения к ним. Поэтому не рекомендуется это делать, если:

Удаление конфигурации пула осуществляется с помощью меню 1. Manage servers in the pool > 7. Remove pool configuration. После подтверждения конфигурация пула будет удалена:

Меню же вернется к своему первоначальному состоянию:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



8. Обновление PHP и MySQL (8. Update PHP and MySQL)

Обновлять версии PHP и MySQL необходимо, исходя из рекомендуемых системных требований продуктов «1С-Битрикс».

В процессе обновления VMBitrix PHP и MySQL автоматически не обновляются. Обновить их нужно в ручном режиме с помощью пункта меню виртуальной машины 1. Manage servers in the pool - 8. Update PHP and MySQL.

Примечание: Пункт меню 1. Manage servers in the pool - 8. Update PHP and MySQL присутствует в BitrixVM, начиная с версии 5.1.х и выше.

Укажите all для обновления только PHP на всех машинах с ролью web, входящих в пул, либо укажите машину с конкретным именем хоста hostname для обновления PHP и MySQL:

Далее можно выбрать варианты PHP или MySQL:


1. Upgrade PHP

На данный момент возможные версии PHP: 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0. Для обновления версии выберите подходящий пункт Update PHP to version х.х:


2. Downgrade PHP

Аналогичным способом можно и понизить версию PHP, выбрав нужную с помощью пункта меню Downgrade PHP to version х.х. Для VMbitrix.CRM минимальная версия PHP – 7.0.


3. Upgrade MySQL version

Если вы обновили VMBitrix до версии 7.1 и выше, то у вас появится возможность обновить версию MySQL до 5.7 Percona DB. Сделать это можно, выбрав пункт Upgrade MySQL to 5.7 version:

После обновления MySQL до версии 5.7 появится возможность обновить MySQL до версии 8.0 – Upgrade MySQL to 8.0 version:

Внимание! После обновления MySQL до версии 8.0 обратно понизить версию до 5.7 через меню VMBitrix нельзя.

Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



9. Изменить имя хоста (9. Change hostname)

Смена имени хоста в пуле осуществляется через пункт меню 1. Manage servers in the pool > 5. Change hostname.

Будет выдан запрос имени хоста, на котором нужно сменить его имя, новое имя и согласие на смену имени хоста:

После успешного выполнения задачи, хост получит новое имя:



10. Использование бета-версии BitrixEnv (10. Enable or disable bitrix-env beta versions)

Бета-версии

Внимание! Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».

При разработке своих решений на основе виртуальной машины BitrixEnv/VMBitrix.CRM, может понадобиться отслеживание изменений в ее версиях файлов и новых возможностей. Для этого вы можете включить репозиторий бета-версии BitrixEnv/VMBitrix.CRM или подключить репозиторий исходников виртуальной машины и отслеживать все изменения.

Внимание!
  • Сама бета-версия и ее исходные коды доступны для BitrixEnv/VMBitrix.CRM, начиная с версии 7.3.10.
  • Обратного отката установленной бета-версии BitrixEnv/VMBitrix.CRM к стабильной нет. Чтобы перейти на стабильную версию, нужно дождаться релиза стабильной версии, новее беты, или установить стабильную версию заново. Например для бета-версии 7.3.10, нужно ждать стабильную версию 7.4.


Нумерация бета-версий

Мы решили оставить небольшой запас для возможности выпускать стабильные версии. Поэтому бета-версии будут иметь номер выше, чем текущая стабильная версия BitrixEnv/VMBitrix.CRM. Например, текущая версия – 7.3.2, бета – 7.3.10. До версии 7.3.10 могут быть выпущены стабильные версии, с версии 7.3.10 и выше – беты. Для нового релиза, например 7.4.xx, порядок тот же: до 7.4.10 – стабильные, 7.4.10 и выше – беты и т.д.

Функционал бета-версий

Все исправления, дополнения и новый функционал, выпускаемый в бете, выйдет в следующей стабильной версии.

Жизненный цикл бета-версии

Ориентировочно 2-4 месяца, после чего все изменения должны уйти в релиз стабильной версии.

Включение/выключение бета-версий

Как включить или выключить бета-версию BitrixEnv/VMBitrix.CRM

  1. Если у вас стабильная версия машины, вам нужно обновить BitrixEnv/VMBitrix.CRM до версии 7.3.2 или выше.

  2. Далее есть 2 пути:
    • если пул не создан:
      • включить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Enable bitrix-env beta versions.
      • выключить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Disable bitrix-env beta versions.

    • если пул создан:
      • включить: 1. Manage Hosts in the pool > 10. Enable or disable bitrix-env beta versions > 1. Enable bitrix-env beta versions.
      • выключить: 1. Manage Hosts in the pool > 10. Enable or disable bitrix-env beta versions > 1. Disable bitrix-env beta versions.
      или:
      • включить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Enable bitrix-env beta versions.
      • выключить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Disable bitrix-env beta versions.

      Для VMBitrix.CRM (т.к пул создается сразу при установке машины):
      • включить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Enable bitrix-env beta versions
      • выключить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Disable bitrix-env beta versions

  3. Затем необходимо обязательно обновить пакеты через меню машины либо командой:

    yum clean all && yum update
    


Бета или стабильный?

Как определить, какой репозиторий используется: бета или стабильный?

Выполнить команду:

yum clean all
В строке со списком репозиториев для беты будет bitrix-beta, для стабильной bitrix. Например:
Cleaning repos: base bitrix-beta bitrix-source epel ...


Как вернуть стабильную версию

Обратного отката установленной бета-версии к текущей стабильной нет, т.е если вы перешли, например, на бету 7.4.13, то вернуться к стабильной 7.4.4 нельзя.
В этом случае чтобы перейти на стабильную версию, нужно дождаться релиза стабильной версии, новее беты, или установить стабильную версию заново. Например для бета-версии 7.4.13, нужно ждать стабильную версию 7.5.
Не забудьте предварительно перейти к использованию репозитория стабильной версии, отключив репозиторий бета-версии.

Как получить исходники бета версии

Скачать исходники можно так же, как и исходники стабильной версии.

Где посмотреть список изменений бета версии

Список изменений публикуется в главе Что нового?. Обсуждение бета версии происходит на форуме.

2. Управление локальным сервером (2. Configure localhost settings)



1. Изменение имени хоста (1. Configure hostname)

Чтобы задать имя хоста локального сервера, нужно перейти в главном меню 2. Manage localhost - 1. Configure hostname.

Далее согласиться на изменение имени хоста и ввести название Input hostname - например server1 (по умолчанию имя хоста - localhost.localdomain):

После чего системе будет присвоено новое имя:

Примечание: Имя хоста можно выбрать любое, можно указать, что хотите: bx1, server10, mysite.com (можно и имя домена, если он один) и т.д.



2. Настройка IP-адреса сервера через DHCP (2. Configure network interface via DHCP)

При первом старте BitrixVM получение IP-адреса сервером происходит автоматически, если в сети есть настроенный DHCP-сервер.


Чтобы сменить или обновить IP-адрес локального сервера с помощью DHCP-сервера, нужно:

  • Перейти в главном меню 2. Manage localhost - 2. Configure network interface via DHCP.
  • Выбрать сетевой интерфейс (в данном примере - ens33) и автоматически будет получен IP-адрес от DHCP-сервера:



3. Настройка IP-адреса сервера вручную (3. Configure network inteface manually)

Для задания IP-адреса в ручном режиме необходимо:

  • Перейти в главном меню 2. Manage localhost - 3. Configure network interface manually.
  • Выбрать сетевой интерфейс (в данном примере - ens33).
  • Ввести данные:

    • Type IP address - новый IP-адрес сервера;
    • Type broadcast - широковещательный адрес сети;
    • Type network mask - маска подсети;
    • Type default gateway - шлюз по умолчанию;
    • Type DNS server - адрес DNS-сервера.
  • Проверить введенные данные и дать согласие на изменение параметров сети сервера:



4. Перезагрузка сервера (4. Reboot server)

Чтобы перезапустить сервер виртуальной машины BitrixVM, нужно перейти в главном меню 2. Manage localhost - 4. Reboot server.

Далее согласиться на перезапуск сервера:



5. Выключение сервера (5. Shutdown server)

Чтобы выключить сервер виртуальной машины BitrixVM, нужно перейти в главном меню 2. Manage localhost - 5. Shutdown server.

Далее согласиться на остановку сервера:



6. Обновление локального сервера (6. Update server)

Обновление

Внимание! Обновление продукта «1C-Битрикс: Виртуальная машина» - сложная операция, в процессе которой происходит обновление системных файлов операционной системы виртуальной машины, и для этого необходимы соответствующие знания администрирования *nix-систем. Перед запуском обновления рекомендуется сделать полный бекап «Виртуальной машины».


Для обновления локальной виртуальной машины необходимо выбрать в административном меню пункт 2. Manage localhost - 6. Update server и согласиться на обновление.

Скрипт автоматически проверит обновления компонентов и произведет их установку.

Внимание! Этот пункт меню запускает обновление компонентов BitrixVM/BitrixEnv и CentOS. Если у вас несколько серверов в пуле (кластер), или вы хотите обновить только пакеты BitrixVM/BitrixEnv, то целесообразно производить обновление виртуальных машин пула.



Ошибки и их решение

  1. Если в процессе обновления BitrixVM случится ошибка примерно такого вида:
    Failing package is: Percona-Server-Client-57-5.7.25-28.1.el7.x86_64
    GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
    
    То нужно выполнить команду обновления пакета Percona:
    yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
    

    И далее запустить обновление заново через меню.

  2. Если после обновления, что-то перестанет работать, то можно вернуть полностью или частично старые файлы настроек соответствующей службы, т.к. конфигурационные файлы при обновлении не перезаписываются, а сохраняются в файлах *.ori.(метка времени).

  3. Также в процессе обновления могут отключиться некоторые модули php. Для их включения необходимо выполнить следующие команды:
    mv -f /etc/php.d/(имя модуля).ini.disabled /etc/php.d/(имя модуля).ini
    service httpd restart
    
  4. Если в процессе обновления появится ошибка, что недостаточно места в загрузочном разделе /boot:

    At least 26MB more space needed on the /boot filesystem.
    
    То нужно в /etc/yum.conf установить installonly_limit=2.

    Затем очистить старые ядра командой:
    package-cleanup --oldkernels --count=2
    



Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



7. Использование бета-версии BitrixEnv (7. Enable or disable bitrix-env beta versions)

Бета-версии

Внимание! Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».

При разработке своих решений на основе виртуальной машины BitrixEnv/VMBitrix.CRM, может понадобиться отслеживание изменений в ее версиях файлов и новых возможностей. Для этого вы можете включить репозиторий бета-версии BitrixEnv/VMBitrix.CRM или подключить репозиторий исходников виртуальной машины и отслеживать все изменения.

Внимание!
  • Сама бета-версия и ее исходные коды доступны для BitrixEnv/VMBitrix.CRM, начиная с версии 7.3.10.
  • Обратного отката установленной бета-версии BitrixEnv/VMBitrix.CRM к стабильной нет. Чтобы перейти на стабильную версию, нужно дождаться релиза стабильной версии, новее беты, или установить стабильную версию заново. Например для бета-версии 7.3.10, нужно ждать стабильную версию 7.4.


Нумерация бета-версий

Мы решили оставить небольшой запас для возможности выпускать стабильные версии. Поэтому бета-версии будут иметь номер выше, чем текущая стабильная версия BitrixEnv/VMBitrix.CRM. Например, текущая версия – 7.3.2, бета – 7.3.10. До версии 7.3.10 могут быть выпущены стабильные версии, с версии 7.3.10 и выше – беты. Для нового релиза, например 7.4.xx, порядок тот же: до 7.4.10 – стабильные, 7.4.10 и выше – беты и т.д.

Функционал бета-версий

Все исправления, дополнения и новый функционал, выпускаемый в бете, выйдет в следующей стабильной версии.

Жизненный цикл бета-версии

Ориентировочно 2-4 месяца, после чего все изменения должны уйти в релиз стабильной версии.

Включение/выключение бета-версий

Как включить или выключить бета-версию BitrixEnv/VMBitrix.CRM

  1. Если у вас стабильная версия машины, вам нужно обновить BitrixEnv/VMBitrix.CRM до версии 7.3.2 или выше.

  2. Далее есть 2 пути:
    • если пул не создан:
      • включить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Enable bitrix-env beta versions.
      • выключить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Disable bitrix-env beta versions.

    • если пул создан:
      • включить: 1. Manage Hosts in the pool > 10. Enable or disable bitrix-env beta versions > 1. Enable bitrix-env beta versions.
      • выключить: 1. Manage Hosts in the pool > 10. Enable or disable bitrix-env beta versions > 1. Disable bitrix-env beta versions.
      или:
      • включить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Enable bitrix-env beta versions.
      • выключить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Disable bitrix-env beta versions.

      Для VMBitrix.CRM (т.к пул создается сразу при установке машины):
      • включить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Enable bitrix-env beta versions
      • выключить: 2. Configure localhost settings > 7. Enable or disable beta version of bitrix-env > 1. Disable bitrix-env beta versions

  3. Затем необходимо обязательно обновить пакеты через меню машины либо командой:

    yum clean all && yum update
    


Бета или стабильный?

Как определить, какой репозиторий используется: бета или стабильный?

Выполнить команду:

yum clean all
В строке со списком репозиториев для беты будет bitrix-beta, для стабильной bitrix. Например:
Cleaning repos: base bitrix-beta bitrix-source epel ...


Как вернуть стабильную версию

Обратного отката установленной бета-версии к стабильной нет. В этом случае чтобы перейти на стабильную версию, нужно дождаться релиза стабильной версии, новее беты или установить стабильную версию заново. Например для бета-версии 7.3.10, нужно ждать стабильную версию 7.4.

Как получить исходники бета версии

Скачать исходники можно так же, как и исходники стабильной версии.

Где посмотреть список изменений бета версии

Список изменений публикуется в главе Что нового?. Обсуждение бета версии происходит на форуме.

3. Настройка службы MySQL для пула (3. Configure MySQL service for the pool)

1. Обновить настройки для всех MySQL-серверов (1. Update settings for all MySQL servers)

Чтобы обновить настройки для всех MySQL-серверов, нужно перейти в главном меню 3. Configure MySQL service for the pool - 1. Update settings for all MySQL servers:

Опция обновляет конфигурацию одного или нескольких MySQL-серверов в пуле (если такое имеется) и приводит их к дефолтным настройкам для виртуальной машины.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



2. Изменить пароль пользователя root для MySQL (2. Change password for MySQL root user)

Внимание! В BitrixVM/BitrixEnv версии 7.x+ пароль root для MySQL-сервера не может быть пустым. При первом запуске BitrixVM он автоматически создается, а при установке BitrixEnv будет выдан запрос на создание пароля root для MySQL-сервера.

Если вам понадобилось сменить пароль root MySQL-сервера, нужно перейти в главном меню 3. Configure MySQL service for the pool - 2.Change password for MySQL root user.

Далее выбрать нужный сервер (имя хоста), согласиться на изменение и ввести новый пароль.



3. Остановить/Запустить службу MySQL на сервере (3. Stop/Start MySQL service on the server)

Остановить или запустить MySQL-сервер можно в главном меню 3. Configure MySQL service for the pool - 3. Stop/Start MySQL service on the server .

Далее выбрать нужный сервер (имя хоста), согласиться на остановку или старт MySQL-сервера:



4. Создать slave MySQL-сервер (4. Create MySQL slave)

Конфигурация master-slave

В «1C-Битрикс: Виртуальная машина» можно быстро развернуть кластерную конфигурацию master-slave «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».

Ключевые особенности:

  • гибкая балансировка нагрузки SQL
  • простота администрирования
  • дешевое и быстрое неограниченное масштабирование
  • он-лайн бэкап
  • не требуется доработка логики веб-приложения

Схема «master - slave» реализуется средствами MySQL. Платформа «1С-Битрикс» позволяет гибко балансировать нагрузку между серверами, участвующими в репликации.

Внимание! Перед тем как начинать конфигурировать схему «master - slave» в BitrixVM/BitrixEnv нужно предварительно установить продукты «1С-Битрикс: Управление сайтом» или в «Битрикс24 в коробке» с модулем Веб-кластер. Данный модуль входит только в старшие редакции продуктов «1С-Битрикс».



Как создать slave сервер MySQL

Для создания slave сервера MySQL нужно:

  • Выбрать пункт меню 3. Configure MySQL service for the pool > 4. Create MySQL slave, ввести имя хоста в пуле, на котором будет создан slave сервер MySQL (в данном примере - server2):

  • Придумать и ввести пароли репликации и кластера:

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

  • Подождать, пока задача по добавлению slave cервера MySQL будет закончена.
  • Создадим аналогичным образом еще один slave сервер MySQL (server3). В итоге получим три сервера MySQL: master (server1) и два slave (server2 и server3):


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



5. Смена master сервера MySQL (5. Change master MySQL server)

Для переноса master сервера MySQL на другую машину необходимо:

  • Выбрать пункт меню 3. Configure MySQL service for the pool > 5. Change master MySQL server.

    Примечание: Данный пункт меню появится только тогда, когда будет создан хотя бы 1 slave-сервер MySQL с помощью меню 3. Configure MySQL servers > 4. Create slave MySQL server.

  • Ввести имя хоста для будущего master сервера MySQL из списка доступных slave (например server2):

  • Подождать, пока задача по смене master cервера MySQL будет закончена.
  • В итоге серверы MySQL станут: master (server2) и два slave (server1 и server3):

Таким образом, мы перенесли master сервер MySQL с машины server1 на server2.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



6. Удаление slave сервера MySQL (6. Remove slave MySQL server)

Для удаления slave сервера MySQL необходимо:

  • Выбрать пункт меню 3. Configure MySQL service for the pool > 6. Remove slave MySQL server.

    Примечание: Данный пункт меню появится только тогда, когда будет создан хотя бы 1 slave-сервер MySQL с помощью меню 3. Configure MySQL servers > 4. Create slave MySQL server.

  • Ввести имя хоста удаляемого slave сервера MySQL (например server1):

  • Подождать, пока задача по удалению slave cервера MySQL будет закончена.
  • В итоге серверы MySQL станут: master (server2) и один slave (server3):

Таким образом, мы освободили ресурсы машины server1 под другие роли.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



4. Настройка службы Memcached для пула(4.Configure Memcached service for the pool)

Продукты «1С-Битрикс» позволяют использовать пул серверов memcached для работы с кешем данных.

Это обеспечивает:

  • высокую эффективность - за счет централизованного использования кеша веб-приложением;
  • надежность - за счет устойчивости подсистемы кеширования к выходу из строя отдельных компонентов;
  • неограниченную масштабируемость - за счет добавления новых memcached-серверов.

Внимание! Перед тем как начинать использовать пул серверов memcached в BitrixVM/BitrixEnv нужно предварительно установить продукты «1С-Битрикс: Управление сайтом» или в «Битрикс24 в коробке» с модулем Веб-кластер. Данный модуль входит только в старшие редакции продуктов «1С-Битрикс».



1. Настройка службы memcached (1.Configure memcached service)

Для создания memcached сервера нужно:

  • Выбрать пункт меню Configure Memcached service for the pool > 1. Configure memcached service.
  • Ввести имя хоста в пуле, на котором будет запущен сервер memcached (в данном примере - server1):

  • Подождать, пока задача по запуску cервера memcached будет закончена:

Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.

2. Обновить настройки memcached сервера (2. Update settings on all memcached servers)

Чтобы обновить настройки для всех memcached -серверов, нужно перейти в главном меню 4. Configure memcached servers - 2. Update settings on all memcached servers:

Примечание: Данный пункт меню появится только тогда, когда будет создан хотя бы 1 memcached-сервер с помощью меню 4. Configure memcached servers > 1. Create memcached server.

Эта опция запускает проверку текущей конфигурации одного или нескольких memcached -серверов в пуле (если такие имеются).


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



3. Удаление memcached сервера (3. Remove memcached server)

Для удаления memcached сервера необходимо:

  • Выбрать пункт меню 4. Configure memcached servers > 3. Remove memcached server.

    Примечание: Данный пункт меню появится только тогда, когда будет создан хотя бы 1 memcached-сервер с помощью меню 4. Configure memcached servers > 1. Create memcached server.

  • Ввести имя хоста удаляемого memcached сервера (например server1):

  • Подождать, пока задача по удалению memcached cервера будет закончена.

Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



5. Мониторинг (5. Configure pool monitoring)

При разворачивании проектов на базе BitrixVM/BitrixEnv необходимо следить за состоянием сервера и отдельных его компонентов.

В составе BitrixVM/BitrixEnv уже имеются системы мониторинга - Munin и Nagios, которые имеют большое количество различных компонентов по отслеживанию функционирования всех систем сервера или нескольких серверов в составе кластера.



1. Настроить сервисы мониторинга (1. Configure monitoring services)

Начало работы

Внимание! Для корректной работы сервиса мониторинга необходима версия виртуальной машины не ниже 7.3.1.

Для начала работы систем мониторинга необходимо:

  1. В главном меню виртуальной машины выбрать пункт 5.Configure pool monitoring > 1. Configure monitoring services:

  2. Затем мастер предложит задать логин и пароль для сервисов мониторинга сервера Nagios и Munin:

    Логины / пароли по умолчанию (рекомендуется сменить на свои):
    Nagios: nagiosadmin / nagiosBitrixMon
    Munin: admin / muninBitrixMon

  3. Далее нужно будет указать e-mail для системных уведомлений Nagios и данные почтового сервера для отправки e-mail. Если отказаться, будет по умолчанию использоваться e-mail root-пользователя:

    • email address - адрес отправителя, от которого будет осуществляться пересылка писем. В данном случае этот email будет использоваться также как и получатель уведомлений от Nagios.
    • server address or DNS - ip- или dns-адрес почтового сервера. Если нажать Enter, то будет использован адрес по умолчанию (127.0.0.1)
    • server port - порт сервера. Порт зависит от типа соединения, 25 - для обычного и 465 - для зашифрованного (с использованием SSL). Если нажать Enter, то будет использован порт по умолчанию (25).
    • Если необходима SMTP-авторизация, то в строке SMTP authentication наберите y и введите логин и пароль для доступа к SMTP-серверу, в противном случае - n.
    • Если выбрана опция SMTP-авторизации, то понадобится ввести тип авторизации type of authentication method: auto, plain, scram-sha-1, cram-md5, gssapi, external, digest-md5, login, ntlm.
    • Если необходим TLS-протокол защищенной передачи данных, то в строке TLS enabled наберите y, в противном случае - n.
  4. Затем мастер сделает необходимые настройки и запустит сервисы мониторинга сервера.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



Мониторинг

Для мониторинга сервера из браузера нужно зайти по адресам и авторизоваться под учетными записями мониторинга:

  • Munin - http://адрес_сервера/munin/:

  • Nagios - http://адрес_сервера/nagios/:

Примечание: Сменить пароли для систем мониторинга можно с помощью повторного запуска пункта меню 5.Configure pool monitoring > 1. Configure monitoring services.



Как проверить e-mail уведомления от Nagios

Проверить работу нотификаций можно легко:

  • Например, остановим сервис МySQL:

    CentOS 6:

    service mysqld stop
    

    CentOS 7:

    systemctl stop mysqld.service
    
  • По умолчанию Nagios будет записывать в лог 3 сообщения со статусом CRITICAL;SOFT каждую минуту, а 4-му сообщению даст статус CRITICAL;HARD:

    В итоге сообщение примерно такого содержания должно прийти на почту, указанную в п.3 настройки уведомлений для админа (поле from address):

    Subject: ** PROBLEM Service Alert: server2/MySQL: connection to 3306 is CRITICAL **
    
    ***** Nagios *****
    
    Notification Type: PROBLEM
    
    Service: MySQL: connection to 3306
    Host: server2
    Address: 192.168.1.246
    State: CRITICAL
    
    Date/Time: Wed Jul 5 14:12:46 MSK 2017
    
    Additional Info:
    
    connect to address 192.168.1.246 and port 3306: Connection refused
    
  • После запуска службы MySQL командой # service mysqld start (CentOS 6) или # systemctl start mysqld.service (CentOS 7) в логе Nagios-а появится запись со статусом OK;HARD:

    И должно прийти сообщение на почту:

    Subject: ** RECOVERY Service Alert: server2/MySQL: connection to 3306 is OK **
    
    ***** Nagios *****
    
    Notification Type: RECOVERY
    
    Service: MySQL: connection to 3306
    Host: server2
    Address: 192.168.1.246
    State: OK
    
    Date/Time: Wed Jul 5 14:22:46 MSK 2017
    
    Additional Info:
    
    TCP OK - 0.001 second response time on 192.168.1.246 port 3306
    
  • Как видим, все работает - при возникновении неполадок на каком-либо сервере Nagios отправит уведомление админу на почту с указанием проблемы.

Примечание: Подробнее о email уведомлениях можно прочитать в документации Nagios.



2. Выключить сервисы мониторинга (2. Disable monitoring services)

Для выключения сервисов мониторинга Nagios и Munin необходимо:

  • Выбрать пункт меню 5. Configure pool monitoring > 2. Disable monitoring services:

  • Согласиться на действие:

  • Подождать, пока задача выключения сервисов мониторинга будет закончена.

Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Configure pool monitoring > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



3. Добавить хосты для мониторинга (3. Add new host(s) on monitoring)

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

Пункт меню 5. Configure pool monitoring > 3. Add new host(s) on monitoring позволяет вручную запустить добавление нового хоста в систему мониторинга, если по каким-либо причинам он не добавился в мониторинг:

Примечание: При выборе 5. Configure pool monitoring > 3. Add new host(s) on monitoring) задача на автоматическое добавление нового хоста в мониторинг запустится сразу, без каких-либо запросов.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



6. Управление сайтами (6. Configure pool sites)

1. Создание сайта (1. Create site)

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

Мастер создания дополнительных сайтов, позволяет развернуть на одной виртуальной машине несколько сайтов, как на независимых установках «1С-Битрикс», так и в рамках многосайтовости.

Внимание! В BitrixVM\BitrixEnv версии 7.х root пароль к MySQL не может быть пустым, он задается для BitrixEnv на этапе установки, а для BitrixVM автоматически при первом старте. Изменить root пароль к MySQL можно в меню 3. Configure MySQL service for the pool > 2. Change password for mysql user root . Если root пароль к MySQL будет пустым, то при добавлении нового сайта будет выдана ошибка.


Для добавления дополнительного сайта необходимо:

  • Предварительно настроить DNS-записи в управлении доменами или в случае локальной установки указать доменное имя в /etc/hosts на виртуальной машине, а также на всех компьютерах, с которых будет осуществляться доступ к данному сайту.
  • Далее из административного меню запустить мастер 6. Configure pool sites > 1 Create site:

    и указать:
    1. Enter site name - доменное имя дополнительного сайта без www;

      Внимание! Если у вас домен в национальной кодировке (например, кириллический домен), то в данное поле нужно вводить имя домена в Punycode-формате, воспользовавшись любым Unicode-Punycode конвертером (например этим).

    2. Enter site type - тип установки ядра «1С-Битрикс»:
      • kernel - в случае создания дополнительного сайта в рамках отдельной установки - отдельное ядро продукта «1С-Битрикс» в новой директории сайта.
      • ext_kernel - отдельное ядро продукта «1С-Битрикс» в новой директории сайта для создания линков на это ядро в рамках многосайтовости, ядро будет недоступно напрямую, а только через дополнительные сайты (работает в паре с сайтами типа link).
      • link - в случае создания дополнительного сайта в рамках многосайтовости - общее ядро и данные в общей базе с уже установленным продуктом «1С-Битрикс» (работает в паре с ядром ext_kernel).
    3. Enter full path to the Bitrix installation directory - указать путь до ядра продукта «1С-Битрикс», на которые будут сделаны симлинки (для ядра типа link).
    4. Enter site encoding - указать кодировку будущего сайта: UTF-8 или windows 1251 (для ядра типа kernel и ext_kernel).
    5. Do you want to enable cron task on site - включить ли выполнение заданий на cron для будущего сайта (для ядра типа kernel и ext_kernel).
    6. Do you want to specify them - по умолчанию название, логин и пароль базы данных и root-директория сайта создаются автоматически (в файлах dbconn.php и .settings.php (с версии 20.900.0 - только в .settings.php)), но с помощью данной опции можно указать свои, выбрав ответ y (для ядра типа kernel и ext_kernel).
  • В процессе работы мастера будет создана директория на сервере: /home/bitrix/ext_www/{название_хоста}, в которой будут:
    • символические ссылки на директорию ядра, которую выбрали ранее (если был выбран вариант link).
    • директории и скрипт BitrixSetup для установки или восстановления продукта (если был выбран вариант kernel).
    • директории и скрипт BitrixSetup для восстановления продукта (если был выбран вариант ext_kernel).
  • После завершения задачи по добавлению сайта он будет готов к использованию.

    Примечание: Количество дополнительных сайтов ограничивается лишь лицензией «1С-Битрикс» данной установки.

Внимание! Если был выбран вариант ядра ext_kernel и установлено ядро в /home/bitrix/ext_www/{название_хоста}, то в списке сайтов виртуальной машины данное ядро не появится до тех пор, пока не будет создан хотя бы один сайт (link) на это ядро.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



2. Удалить сайт (2. Delete site)

Для удаления записи о дополнительном сайте необходимо в административном меню выбрать пункт 6. Configure pool sites > 2. Delete site и выбрать директорию удаляемого сайта (Enter site directory):

Внимание! Мастер удаления дополнительного сайта удаляет папку и базу данных дополнительного сайта, поэтому необходимо предварительно сделать бекап важных данных.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



3. Настройка задач cron (3. Change cron tasks on site)

По умолчанию в виртуальной машине cron уже включен. Если по каким-либо причинам нужно отключить службу cron, то для этого необходимо:

  • Перейти в главном меню в 6. Configure pool sites > 3. Change cron tasks on site и ввести директорию сайта, для которого нужно отключить службу cron:

  • Согласиться на отключение cron и дождаться пока задача будет закончена:

Аналогичным способом осуществляется включение cron:


Внимание! Информацию о том, как настроить в продуктах «1С-Битрикс» обработку всех агентов на cron, можно прочитать здесь.



4. Настройка SMTP (4. Change e-mail settings on site)

Настройка SMTP-клиента

Для настройки SMTP-клиента выполните следующее:

  1. Перейти в главном меню в 6. Configure pool sites > 4. Change e-mail settings on site и ввести имя хоста, для которого нужно настроить отправку почты:

  2. Далее ввести необходимые данные:

    • from address - адрес отправителя, от которого будет осуществляться пересылка писем.
    • server address or DNS - ip- или dns-адрес почтового сервера. Если нажать Enter, то будет использован адрес по умолчанию (127.0.0.1)
    • server port - порт сервера. Порт зависит от типа соединения, чаще всего: 25 - для обычного и 465 - для зашифрованного (с использованием SSL). Если нажать Enter, то будет использован порт по умолчанию (25).
    • Если необходима SMTP-авторизация, то в строке SMTP authentication наберите y и введите логин и пароль для доступа к SMTP-серверу, в противном случае - n.
    • Если выбрана опция SMTP-авторизации, то понадобится ввести тип авторизации type of authentication method: auto, plain, scram-sha-1, cram-md5, gssapi, external, digest-md5, login, ntlm (например для yandex.ru достаточно auto, а для mail.ru - plain).
    • Если необходим TLS-протокол защищенной передачи данных, то в строке TLS enabled наберите y, в противном случае - n.

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

  3. Дождаться пока задача по настройке SMTP будет закончена.

  4. Убедиться в правильности введенных настроек можно снова в 6. Configure pool sites > 4. Change e-mail settings on site:



Внимание! При использовании нескольких физических веб-серверов в пуле (веб-кластер) автоматически не создается конфигурация msmtp на других серверах пула. Для работы конфигурации msmtp на spare-нодах кластера нужно скопировать вручную через ssh файл /home/bitrix/.msmtprc с master-ноды на spare-ноды и сменить владельца/группу у этих файлов на bitrix:bitrix. Далее на spare-нодах создать файл /etc/@msmtprc и сделать симлинк с него на файл /home/bitrix/.msmtprc.


Где хранятся логи msmtp

В логах msmtp можно всегда посмотреть ошибки отправки писем. Находятся логи в директории /home/bitrix/.

Для каждого сайта свой лог msmtp, в названии лога будет указано имя сайта – msmtp_{SiteName}.log. Например для сайта по умолчанию лог будет иметь имя msmtp_default.log.



Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.





Настройки для почтовых сервисов

Здесь представлены настройки некоторых почтовых сервисов.

Gmail

  • From Email address – ваш адрес, от имени которого будут отправляться письма (пример: mail@gmail.com)
  • Server address or DNS – smtp.gmail.com
  • Server port – 587
  • SMTP authentication – yes
  • Login – ваш полный логин (пример: mail@gmail.com)
  • SMTP authentication method – auto
  • Enable TLS – yes

Доступно подключение как через обычный пароль, так и через пароль приложения (рекомендуемый).

Примечание: Сервис Gmail может блокировать подключение по smtp в целях безопасности. Как изменить настройки доступа к аккаунту для небезопасных приложений читайте в справке Google.


Яндекс.Почта

  • From Email address – ваш адрес, от имени которого будут отправляться письма (пример: mail@yandex.ru)
  • Server address or DNS – smtp.yandex.ru
  • Server port – 25 или 587
  • SMTP authentication – yes
  • Login – ваш полный логин (пример: mail@yandex.ru)
  • SMTP authentication method – auto
  • Enable TLS – yes

Доступно подключение как через обычный пароль (с подтверждением аккаунта), так и через пароль приложения (рекомендуемый).

Примечание: Сервис Яндекс.Почта может блокировать подключение по smtp в целях безопасности. В логе msmtp можно всегда посмотреть ошибки отправки писем. Если ваше письмо заблокировано, в логе будет указана причина и ссылка с указанием действий для разблокировки.
Внимание! Яндекс включил строгий контроль адреса отправителя. Это значит, что вы больше не сможете через SMTP-клиент отправить письмо, если отправитель в поле From («От кого») отличается от авторизованного пользователя по SMTP. Указать несколько отправителей в поле From также не получится.


Mail.ru

  • From Email address – ваш адрес, от имени которого будут отправляться письма (пример: mail@mail.ru)
  • Server address or DNS – smtp.mail.ru
  • Server port – 25 или 587
  • SMTP authentication – yes
  • Login – ваш полный логин (пример: mail@mail.ru)
  • SMTP authentication method – plain
  • Enable TLS – yes

Доступно подключение как через обычный пароль, так и через пароль приложения (рекомендуемый).

Внимание! Mail.ru включил строгий контроль адреса отправителя. Это значит, что вы больше не сможете через SMTP-клиент отправить письмо, если отправитель в поле From («От кого») отличается от авторизованного пользователя по SMTP. Указать несколько отправителей в поле From также не получится. Кроме того сервер ограничил отправку в 500 писем в день.


Другие сервисы

Настройки для других smtp сервисов можно взять по ссылкам:



Где хранятся логи msmtp

В логах msmtp можно всегда посмотреть ошибки отправки писем. Находятся логи в директории /home/bitrix/.

Для каждого сайта свой лог msmtp, в названии лога будет указано имя сайта – msmtp_{SiteName}.log. Например для сайта по умолчанию лог будет иметь имя msmtp_default.log.



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

Например, у Яндекса и Google по умолчанию лимит на отправку – 500 писем в сутки. Если в письме несколько получателей, то письмо каждому из них считается отдельным письмом. Этот ежесуточный лимит может изменяться на основании их собственных алгоритмов подсчета благонадежности пользователя.



5. Настройка https на сайте (5. Change https settings on site)

  Доступ по HTTPS

По умолчанию в виртуальной машине включена поддержка доступа к сайтам через протоколы HTTP и HTTPS.

Если необходимо оставить доступ к сайту только по защищенному протоколу HTTPS, то для этого нужно:

  • Перейти в главном меню в 6. Configure pool sites > 5. Change https settings on site и ввести имя хоста, для которого нужно настроить протокол доступа:

  • Согласиться на отключение HTTP доступа и дождаться пока задача будет закончена:

    Внимание! Для доступа к сайту только по протоколу HTTPS необходим SSL-сертификат от доверенного центра сертификации, иначе браузеры будут выдавать ошибку, что сертификат безопасности сайта не является доверенным.

  Доступ по HTTP

Аналогичным способом осуществляется возврат доступа к сайту по протоколу HTTP:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



6. Настройка резервного копирования сайта (6. Change backup settings on site)

Копирование
по расписанию

При разворачивании проектов на базе BitrixVM/BitrixEnv, часто встает задача создания резервной копии проекта по расписанию.

В BitrixVM/BitrixEnv есть функционал автоматического резервного копирования сайта и базы данных. Бекап будет создан по расписанию в виде архива .tar.gz и записан в директории /home/bitrix/backup/archive/.

У данного способа есть как преимущества, так и недостатки в сравнении с встроенным в продукты «1С-Битрикс» механизмом создания резервной копии:

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


Создание
расписания

Для создания расписания автоматического резервного копирования средствами BitrixVM/BitrixEnv необходимо:

  • В меню виртуальной машины выбрать пункт 6. Configure pool sites > 6. Change backup settings on site.
  • Выбрать из списка имя хоста и согласиться на изменение настроек расписания автоматического резервного копирования:

  • Выбрать периодичность и час запуска автоматического резервного копирования:

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

    /opt/webdir/bin/bx-sites -a backup -d dbcp --enable --minute=10 --hour=18 --day=any --month=any --weekday=any
    

    Примечание: Как настроить правильное время в BitrixVM/BitrixEnv см. здесь.

  • На этом работа мастера настройки завершена, и в Cron (/etc/crontab) добавляется задача резервного копирования проекта.

    Бэкап делается для ядра (сайта типа kernel и ext_kernel) и всех его link, если такие существуют. Для этого создается задание в crontab-файле. Например:

    10 22 * * * bitrix /opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive
    

    В качестве первой опции указывается имя БД, второй опцией указывается каталог, в котором будет создан архив.

    В итоге скрипт создаст архив следующего вида: www_backup__DD.MM.YYYY_<random_string>.tar.gz (например - www_backup_dbcp_21.10.2014_1RJKXbMv.tar.gz).

    Внутри архива должны присутствовать следующие файлы:

    1. дамп БД /home/bitrix/mysql_dump__DD.MM.YYYY_.sql
    2. данные сайта ядра
    3. данные сайтов типа ссылок с полным путем


Управление бэкапами
через bx-sites

  • -a|--action - действие по управлению сайтами, в данном случае это backup
  • -d|--database - название БД (в бэкапе будут содержаться данные для всех сайтов, которые используют эту БД)
  • --enable|--disable - включение или отключение бэкапа для сайтов
  • --minute - параметры записи в crontab файле (минуты)
  • --hour - параметры записи в crontab файле (часы)
  • --day - параметры записи в crontab файле (день)
  • --month - параметры записи в crontab файле (месяц)
  • --weekday - параметры записи в crontab файле (день недели)

В случае успешного выполнения утилита вернет новые опции для сайта:

/opt/webdir/bin/bx-sites -a backup -d sitemanager0 --enable --minute=10 --hour=23 --day=1 --month=any --weekday=any -o json | python -mjson.tool  
...
            "BackupCronFile": "/etc/crontab",
            "BackupDay": "1",
            "BackupFolder": "/home/bitrix/backup/archive",
            "BackupHour": "23",
            "BackupMinute": "10",
            "BackupMonth": "*",
            "BackupTask": "enable",
            "BackupVersion": "v5",
            "BackupWeekDay": "*", 
...


Списки
исключений

Ряд файлов/каталогов необходимо исключить из резервной копии. Список таких исключений можно найти в файле /opt/webdir/bin/ex.txt.

По умолчанию, в нем находятся следующие подкаталоги:

bitrix/cache
bitrix/managed_cache
bitrix/stack_cache
bitrix/local_cache
bitrix/backup
bitrix/tmp
upload/tmp
upload/resize_cache


Содержимое бэкапа/
восстановление

Как уже сказано выше, в бэкап включается:

  • сам каталог сайта ядра (kernel или ext_kernel);
  • файл dump БД (/home/bitrix/mysql_dump_<db>.sql);
  • каталоги сайтов (link), которые используют ядро.

Например команда:

/opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive

создает файл www_backup_sitemanager0_30.01.2015_bnnW1NPm.tar.gz в директории /home/bitrix/backup/archive/

Для восстановления, нужно перейти в DocumentRoot ядра, выполнить:

tar xzvvf www_backup_dbvm04_22.08.2018_YBC0dLJe.tar.gz
-rw-rw-r-- bitrix/bitrix      490 2017-11-22 17:46 ./telephony/lines.php
-rw-rw-r-- bitrix/bitrix      543 2017-11-22 17:46 ./telephony/editgroup.php
-rw-rw-r-- bitrix/bitrix       42 2017-11-22 17:46 ./telephony/.access.php
-rw-rw-r-- bitrix/bitrix      496 2017-11-22 17:46 ./telephony/groups.php
drwxrwxr-x bitrix/bitrix        0 2017-11-22 17:26 ./auth/
-rw-rw-r-- bitrix/bitrix      593 2017-11-22 17:26 ./auth/.left.menu.php
-rw-rw-r-- bitrix/bitrix      534 2017-11-22 17:26 ./auth/index.php
-rw-rw-r-- bitrix/bitrix      248 2017-11-22 17:26 ./auth/.section.php
-rw-rw-r-- bitrix/bitrix  5794692 2018-08-22 16:29 home/bitrix/mysql_dump_dbvm04_22.08.2018_YBC0dLJe.sql
drwxr-xr-x                     Creating directory: home
drwxr-xr-x                     Creating directory: home/bitrix
-rw-rw-r-- bitrix/bitrix       44 2018-08-22 16:29 home/bitrix/mysql_dump_dbvm04_22.08.2018_YBC0dLJe_after_connect.sql

После чего нужно восстановить БД:

mysql sitemanager0 < home/bitrix/mysql_dump_sitemanager0_30.01.2015_bnnW1NPm_after_connect.sql

И данные дополнительных сайтов, если они есть:

rsync -av home/bitrix/ext_www/ /home/bitrix/ext_www/

Далее удалите дамп базы данных.



Примечание: Не забывайте следить за свободным местом на диске и периодически удалять старые резервные копии.



7. Настройка NTLM-авторизации на всех сайтах (7. Configure NTLM auth for all sites)

Настройка NTLM-авторизации...

Внимание! Для поддержки механизма NTLM-авторизации продуктами «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке» необходим модуль AD/LDAP интеграция версии 11.5.0 и выше.

После включения и настройки механизм NTLM-авторизации начинает работать следующим образом:

  • неавторизованный посетитель приходит на проект, где обработчиком события он перенаправляется на открытый порт Apache (8890 для http или 8891 для https);
  • Apache выполняет NTLM-авторизацию пользователя и пользователь перенаправляется назад на 80 или 443 порт (для http и https соответственно);
  • следующие переходы по сайту пользователь выполняет в обычном режиме.

Более подробно ознакомиться с работой механизма NTLM-авторизации можно в уроке NTLM-авторизация в стороннем окружении курса Администратор. Базовый.

Рассмотрим настройку NTLM-авторизации на примере:

пользователей в
«Битрикс24 в коробке»

  • Во время установки, в мастере выбираем Разрешить пользователям Active Directory авторизовываться на портале:

  • Далее вводим настройки подключения к домену AD, проверяем соединение:

  • Указываем соответствия групп в AD группам корпоративного портала:

  • После завершения установки в административном разделе портала открываем страницу Active Directory / LDAP серверы (Настройки > AD/LDAP):

  • редактируем параметры сервера Active Directory, указывая домен для NTLM авторизации:

  • После этого заходим в настройки модуля AD/LDAP и устанавливаем Использовать NTLM авторизацию:

Продукт «1С-Битрикс» готов к использованию NTLM-авторизации, осталось настроить виртуальную машину.


Внимание! Если необходимо для локальной сети компании настроить NTLM-авторизацию, а для сотрудников, работающих с порталом, использовать стандартную авторизацию, то дополнительно в настройках модуля AD/LDAP нужно указать диапазон IP-адресов, для которых необходима NTLM-авторизация - Ограничить NTLM переадресацию следующей подсетью (например, 192.168.0.1/24):



пользователей в
«1С-Битрикс: Виртуальная машина»

Для настройки виртуальной машины необходимо подключитьcя к ней под пользователем root, выбрать пункт меню 6. Configure pool sites > 7. Configure NTLM auth for all sites и ввести необходимые данные:

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

Примечание: Проверить, что компьютер успешно введен в домен можно командой:
net ads testjoin

Настройка завершена, для успешной NTLM-авторизации осталось проверить настройки браузеров.



в браузерах

  • Internet Explorer

    Для успешной NTLM-авторизации нужно, чтобы веб-сервер находился в зоне Local Intranet (при необходимости нужно добавить):

  • Mozilla Firefox:

    Добавить веб-сервер к списку доверенных URI для автоматической NTLM-авторизации (через параметр network.automatic-ntlm-auth.trusted-uris на странице Firefox: about:config)

Примечание: Действия по включению NTLM-авторизации на уже установленном продукте «Битрикс24 в коробке», а также в «1С-Битрикс: Управление сайтом» аналогичны перечисленным выше, за исключением того, что сервер Active Directory добавляется вручную в административном разделе.



8. Настройка xmppd|smtpd сервисов для сайта (8. Configure optional services (xmppd|smtpd) for site)

Мастер позволяет управлять работой сервисов XMPP и SMTP с помощью Cron. Это может понадобится, если необходимо рассылать jabber- и почтовые сообщения в случае, если на сайте нет активности, т.е если все события на сайте работают на хитах.


Для управления необходимо:

  • Из административного меню запустить мастер 6. Configure pool sites > 8 Configure optional services (xmppd|smtpd) for site:

  • Далее указать:
    • Enter site-name - имя сайта;
    • Enter service name - имя сервиса xmppd или smtpd.
  • И согласиться на активацию работы сервисов через Cron:

  • После завершения данной задачи jabber-уведомления и почтовые сообщения будут отправляться по cron-расписанию, независимо от активности на сайте.

Аналогичным образом отключается данные опции:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



9. Настройка nginx для работы с композитом (9. Configure nginx for composite)

Внимание! Настройки в виртуальной машине BitrixVM должны производиться после осуществления настроек Композитного сайта в Административном разделе. Если такие настройки выполнены в колонке Composite должно стоять Y.

Конфигурации NGINX
для работы с композитом

Примечание: Если сайтов несколько, то для каждого сайта, для которого включается Композитный сайт, нужно осуществить настройки, описанные ниже.

Управление настройками композитного кеша для NGINX находятся в меню виртуальной машины: 6. Configure pool sites > 9. Configure nginx for composite:

Эта настройка выполняет следующие действия:

  1. По настройкам, заданным в форме Композитный сайт в Административном разделе, создает конфигурационный файл условий работы композита, персональных для сайта в каталоге /etc/nginx/bx/maps. Например, включен или выключен композит для https-запросов.
  2. Обновляет настройки сайта, добавляет:
    • проверку условий - глобальных (общих для всех сайтов) и персональных,
    • выбранного для композита хранилища (files, memcached), если все условия выполняются.


Включение и обновление
настроек NGINX для композита

Для включения или обновления настроек:

  1. Укажите имя сайта.
  2. Подтвердите выбор, запустится фоновое задание, которое выполнит все настройки описанные в предыдущих пунктах.

Примечание. Также можно воспользоваться утилитой командной строки bx-sites (не забудьте указать нужный сайт вместо default в примере).
/opt/webdir/bin/bx-sites -o json -a composite --enable --site=default



Выключение настроек NGINX
по работе с композитом

Для отключения настроек:

  1. Укажите имя сайта.
  2. Откажитесь от обновления существующих настроек.
  3. Подтвердите отключение настроек Композита, запустится фоновое задание, которое вернет настройки сайта к значениям по умолчанию.

Примечание Так же можно воспользоваться утилитой командной строки bx-sites. (Не забудьте указать нужный сайт вместо default в примере.)
/opt/webdir/bin/bx-sites -o json -a composite --disable --site=default



Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.




PHP или NGINX?

После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.

Заголовки при использовании Композита в BitrixVM могут быть такие:

  • X-Bitrix-Composite:Nginx (file) - отдача страниц - NGINX, хранение - файлы;
  • X-Bitrix-Composite:Nginx (memcached) - отдача страниц - NGINX, хранение - memcached;
  • X-Bitrix-Composite:Cache (200) - отдача страниц - PHP, хранение - файлы.


Условия работы композитного кеша

Примечание: Указанные в этом уроке настройки производить не нужно. Здесь дано описание того, что происходит при включении настроек NGINX на технологию Композитный сайт в BitrixVM только для ознакомления.

Условия разделены на две группы:

Глобальные условия

Настройки определяются в файле: /etc/nginx/bx/maps/composite_settings.conf. NGINX не использует технологию Композитный сайт, если соблюдается хотя бы одно условие:

  1. есть заголовок BX_ACTION_TYPE,
  2. есть заголовок BX_AJAX,
  3. это не GET-запрос,
  4. в query_string есть параметр ncc,
  5. в query_string есть параметр bxajaxid,
  6. в query_string есть параметр sessid,
  7. запрос сделан из IE ранее 10 версии,
  8. запрос по адресу /bitrix/,
  9. запрос по адресу /index_controller.php,
  10. есть кука NCC,
  11. есть куки LOGIN, UIDH и при этом нет куки CC.

Определение условий сделано через http_ngx_map_module:

  • По каждому из условий создано свое отображение. Например, в случае если переменная $http_bx_action_type содержит данные, то композитный ключ $not_bx_action_type будет содержать 0.
    map $http_bx_action_type $not_bx_action_type {
      default "0";
      ''      "1";
    }
  • Все условия используются для финальной проверки:
    # test all global conditions
    map "${not_bx_action_type}${not_bx_ajax}${is_get}${non_arg_ncc}${non_arg_bxajaxid}${non_arg_sessid}${is_modern}${is_good_uri}${non_cookie_ncc}${is_storedAuth}" $is_global_composite {
      default     "1";
      ~0          "0";
    } 

    Если хоть одно из условий содержало 0, то итоговое значение переменной $is_global_composite будет равно 0.



Персональные условия для сайта

Персональные проверки NGINX для сайта, определяются в момент включения или обновления композита из консольного меню. Для таких настроек создается и обновляется файл в каталоге: /etc/nginx/bx/maps/. Имя файла имеет специальный формат: <ID>.cache_<SITE_NAME>.conf, где:

  • ID - уникальный идентификатор сайта для кеша (инкрементное значение от 1),
  • SITE_NAME - имя сайта в системе (example.org).

NGINX не будет использовать композитный кеш, если выполняется хотя бы одно из условий:

  1. в query_string есть параметр из конфига (ключ ~EXCLUDE_PARAMS в .config.php),
  2. запрос по протоколу HTTPS (по галочке в настройках),
  3. запрос на домен, не указанный в списке доменов (ключ DOMAINS в .config.php),
  4. запрос по адресу, не указанному в "маске включения" ( ключ ~INCLUDE_MASK в .config.php),
  5. запрос по адресу, указанному в списке "маска исключений" ( ключ ~EXCLUDE_MASK в .config.php).

Определение условий сделано через http_ngx_map_module:

  • По каждому из условий, найденных в .config.php, создается свое отображение. Например, если задано условие INCLUDE_MASK для запроса, будет создана следующая структура:
    # test include uri for site
    map $uri $is_include_uri_02 {
      default  "0";
      "~*^.*?\.php$"  "1";
      "~*^.*?/$"  "1";
    
    }

    Если переменная $uri содержит одно из следующих регулярных выражений, то $is_include_uri_02 будет содержать 1, в остальных случая переменная будет равна 0.

    Примечание: Обратите внимание, что в переменной используется идентификатор сайта, это сделано для того, чтобы разграничить условия разных сайтов.

  • Все найденные условия, используются для финальной проверки:
    # variable $is_site_composite_02 used in site config
    map "${config_domain_02}${is_include_uri_02}${not_exclude_uri_02}${not_https_schema_02}" $is_site_composite_02 {
      default   "1";
      ~0        "0";
    }
    Если хоть одна из переменных получит значение 0, переменная $is_site_composite_02 будет содержать 0, в остальных случаях 1.


Ключ поиска в композите

Ключ - это файл, который NGINX будет искать в композитном кеше (ключ для memcached хранилища, файл в случае хранения на файлах). Он нужен для того, чтобы привести запрос на сайт (uri) к универсальному виду.

Данный ключ определяется в глобальных настройках в файле /etc/nginx/bx/maps/composite_settings.conf. Так же, как для условий, используется модуль nginx ngx_map_module:

map $uri $composite_key {
  default                         $uri;
  ~^(?P.+)/$           $non_slash;
  ~^(?P.+)/index.php$  $non_index;
  ~^(?P.+)/index.html$ $non_index;
}

Действуют следующие правила:

  • Если запрос заканчивается на слеш, то вырезается финальный слеш из запроса.
  • Если запрос содержит index.php или index.html, то они вырезаются из запроса.


Конфигурационный файл сайта

Проверки для включения технологии на стороне NGINX используются в конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled. В случае стандартной конфигурации, файл обычно содержит следующие настройки:

    # Include parameters common to all websites
    include bx/conf/bitrix.conf;

При включенной технологии Композитный сайт, настройки зависят от выбранного хранилища.

Указанные в этом подразделе настройки производить не нужно. Здесь для ознакомления дано описание того, что происходит при включении настроек NGINX на технологию Композитный сайт в BitrixVM.

Хранение в файлах

  1. В файле /bitrix/html_pages/.config.php опция STORAGE содержит значение files.
  2. В конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled, должно быть прописано:
      # определяем ключ композита и файл на диске
      set $composite_cache    "bitrix/html_pages/${host}${composite_key}/index@${args}.html";
      set $composite_file     "${docroot}/${composite_cache}";
    
      # файл, который определяет включен ли композит на сайте или нет
      set $composite_enabled  "${docroot}/bitrix/html_pages/.enabled";
       
      # переменная, которая используется для композитной проверки
      set $use_composite_cache "";
      # если переменная глобальных условий содержит 1, добавляем признак в  use_composite_cache
      if ($is_global_composite  = 1) {set $use_composite_cache "A";}
      # если переменная персональных условий сайта содержит 1, добавляем признак use_composite_cache
      if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";}
    
      # Подключаем конфиг, который содержит наши стандартные настройки, без  location по умолчанию
      include bx/conf/bitrix_general.conf;
    
      # Основной location
      location / {
     
        # если файл включения композита существует, добавляем признак в use_composite_cache
        if (-f $composite_enabled)     { set $use_composite_cache "${use_composite_cache}C"; }
    
        # если файл кеша существует, добавляем признак в use_composite_cache
        if (-f $composite_file)  { set $use_composite_cache "${use_composite_cache}D"; }
     
        # если все четыре условия выполняются, отправляем запрос в location c кешем
        if ($use_composite_cache = "ABCD") { rewrite .* /$composite_cache last; } 
    	 
         # по дефолту отправляем в apache
        proxy_pass $proxyserver;
      }


Хранение в memcached

  1. В файле /bitrix/html_pages/.config.php опция STORAGE содержит значение memcached или memcached_cluster.

  2. В конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled, должно быть прописано:
    # устанавливаем параметры подключения для memcached 
      memcached_connect_timeout 1s;
      memcached_read_timeout 1s;
      memcached_send_timeout 1s;
      memcached_gzip_flag 65536; 
      # ключ поиска
      set $memcached_key "/${host}${composite_key}/index@${args}.html";
    
      # включен ли композитный кеш
      set $composite_enabled  "${docroot}/bitrix/html_pages/.enabled";
      # переменная, которая используется для проверки работы с композитом при запросе пользователя
      set $use_composite_cache "";
      # учитываем глобальные условия
      if ($is_global_composite  = 1) {set $use_composite_cache "A";}
      # учитываем персональные условия
      if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";}
    
      # подключаем общие параметры для bitrix окружения, без использования  default location
      include bx/conf/bitrix_general.conf;
    
      # основной location
      location / { 
         # если данные не найдены в кеше проксируем запрос на apache
        error_page 404 405 412 502 504 = @apache;
     
        # учитываем наличие .enabled файла
        if (-f $composite_enabled)     { set $use_composite_cache "${use_composite_cache}C"; }
    
        default_type text/html;
        # если все совпало, отправляем запрос в memcached
        if ($use_composite_cache = "ABC") {
          add_header X-Bitrix-Composite "Nginx (memcached)";
          memcached_pass localhost:11211;
        }
        proxy_pass $proxyserver;
      }
    
      location @apache {
        proxy_pass $proxyserver;
      }


PHP или NGINX?

После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.

Заголовки при использовании Композита в BitrixVM могут быть такие:

  • X-Bitrix-Composite:Nginx (file) - отдача страниц - NGINX, хранение - файлы;
  • X-Bitrix-Composite:Nginx (memcached) - отдача страниц - NGINX, хранение - memcached;
  • X-Bitrix-Composite:Cache (200) - отдача страниц - PHP, хранение - файлы.


10. Настроить опции сайта (10. Configure site options)

1. Настроить параметр proxy_ignore_client_abort (1. Configure proxy_ignore_client_abort for site)

Внимание! Включение глобально параметра nginx proxy_ignore_client_abort нужно делать в крайних случаях, обычно это делать не требуется. Лучше это делать вручную и для конкретных location, а не глобально на весь сервер. В следующих версиях BitrixVM/BitrixEnv этот пункт меню будет переработан.

Включение параметра nginx proxy_ignore_client_abort может быть полезным при неполадках в работе Телефонии, Открытых линиях. Данный параметр определяет, закрывать ли соединение с проксированным сервером в случае, если клиент закрыл соединение, не дождавшись ответа.

Для управления необходимо:

  • Из меню запустить мастер 10. Configure site options > 1. Configure proxy_ignore_client_abort for site, ввести имя сайта и согласиться на включение параметра proxy_ignore_client_abort:

  • Дождаться завершения данной задачи.

Аналогичным образом отключается данный параметр:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



11. Сайты с ошибками (11. Show sites with errors)

Если по каким-либо причинам на сайтах появились серьезные ошибки: отсутствие модулей на сайте или нет подключения к БД (не получается подключиться с данными настроек сайта), то в меню виртуальной машины появляется пункт меню 6. Manage sites in the pool > 11. Show sites with errors:

Выбрав этот пункт меню, отобразится список сайтов с кратким описанием ошибки (в данном примере - нет соединения с базой данных mysql):


Примечание: Пункт меню 6. Configure pool sites > 11. Show sites with errors является скрытым и появляется только тогда, когда есть ошибки на сайтах под управлением виртуальной машиной BitrixVM или linux-окружением BitrixEnv. Как только ошибки будут исправлены, данный пункт снова скроется.



7. Управление Sphinx (7. Configure Sphinx service for the pool)

Использование Sphinx в качестве поискового механизма позволит значительно увеличить скорость поиска и снизит нагрузку на сервер.



1. Создать инстанс sphinx на сервере (1. Create sphinx instance on server)

Для установки Sphinx на сервер необходимо:

  • Установить и обновить проект до последней актуальной версии;
  • В меню виртуальной машины выбрать пункт 7. Configure Sphinx service for the pool > 1. Create sphinx instance on server:

  • Далее ввести имя хоста, где будет запущен сервер поиска Sphinx (в данном примере server1):

  • Выбрать базу данных ядра системы сайта из списка:

  • Дать согласие на запуск полной переиндексации после установки сервера Sphinx:

  • Подождать, пока задача по установке Sphinx и переиндексации будет закончена:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.


Примечание: Ручная настройка поискового механизма Sphinx описана в данном уроке.



2. Обновить настройки sphinx (создать индекс) (2. Update sphinx instance on server (add index))

Чтобы обновить настройки для всех Sphinx-инстансов, нужно перейти в главном меню 7. Configure Sphinx service for the pool > 2. Update sphinx instance on server (add index):

  • Примечание: Данный пункт меню появится только тогда, когда будет создан хотя бы 1 Sphinx-инстанс с помощью меню 7. Configure Sphinx service for the pool > 1. Create sphinx instance on server.

  • Далее ввести имя хоста, где будет запущен сервер поиска Sphinx (в данном примере server1):

  • Выбрать базу данных ядра системы сайта из списка:

  • Дать согласие на запуск полной переиндексации после установки сервера Sphinx:

  • Подождать, пока задача по установке Sphinx и переиндексации будет закончена.

Эта опция запускает проверку текущей конфигурации одного или нескольких Sphinx-инстансов в пуле (если такие имеются) и запускает принудительную переиндексацию.



Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.


Примечание: Ручная настройка поискового механизма Sphinx описана в данном уроке.



3. Удалить sphinx на сервере (3. Remove sphinx instance on server)

Для удаления Sphinx-инстанса с сервера необходимо:

  • Выбрать пункт меню 7. Manage sphinx in the pool > 3. Remove sphinx instance on server.

    Примечание: Данный пункт меню появится только тогда, когда будет создан хотя бы 1 Sphinx-инстанс с помощью меню 7. Configure Sphinx service for the pool > 1. Create sphinx instance on server.

  • Ввести имя хоста удаляемого Sphinx-инстанса (например server1):

  • Выбрать базу данных ядра системы сайта из списка:

  • Подождать, пока задача по удалению Sphinx-инстанса будет закончена.

Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



8. Управление веб-серверами (8. Manage pool web servers)

В «1C-Битрикс: Виртуальная машина» можно быстро развернуть кластеризацию веб-сервера в «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».

При разделении проекта на несколько веб-серверов необходимо решить две задачи:

  • синхронизация данных (файлов) между серверами
  • балансировка нагрузки между серверами

Внимание! Перед тем как начинать использовать кластеризацию веб-сервера в BitrixVM/BitrixEnv нужно предварительно установить «1С-Битрикс: Управление сайтом» или в «Битрикс24 в коробке» с модулем Веб-кластер. Данный модуль входит только в старшие редакции продуктов «1С-Битрикс».



1. Создание веб-сервера (1. Create web role on server)

Для создания роли веб-сервера нужно:

  • Выбрать пункт меню 8. Manage pool web servers > 1. Create web role on server и ввести имя хоста в пуле, на котором будет создан веб-сервер (в данном примере - server3):

  • Выбрать вариант создания роли:
    1. one step - все действия по созданию web-роли будут произведены за 1 шаг. Данный вариант рекомендуется на простых проектах, где не так много данных.
    2. two steps - действия по созданию web-роли будут произведены за 2 шага для уменьшения ошибок в процессе создания роли. Данный вариант рекомендуется на крупных проектах, где очень много данных.

      Внимание! Если вы выбрали вариант two steps, после выполнения задачи 1-го шага нужно запустить 2-й шаг таким же образом на этом же сервере.

  • Подождать, пока задачи по созданию веб-сервера будут закончены. И мы увидим, что у нас 2 сервера с ролью web в пуле: server1 и server3:

  • Добавим еще одному серверу в пуле web-роль (server2) аналогичным способом. Мы видим, что у сервера с балансировщиком web-роль имеет тип main, а у дополнительных серверов пула - spare:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



2. Настроить модули PHP (2. Manage PHP extensions)

В разделе 8. Manage pool web servers > 2. Manage PHP extensions можно включить дополнительные модули PHP, которые могут понадобится в продуктах «1C-Битрикс».


На данный момент можно включить модуль SSH2 для PHP:

Выключается данный модуль аналогично:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



3. Настройка сертификатов (3. Configure certificates)

SSL-сертификат – это цифровая подпись сайта, она обеспечивает шифрованное соединение между посетителем сайта и сервером. Еще с помощью этого сертификата подтверждается подлинность сайта – любой посетитель может проверить, действительно ли этот сайт принадлежит данной компании.

Начиная с версии BitrixVM 7.2.0, добавилась возможность подключения SSL-сертификатов как бесплатного Let's Encrypt, так и своего собственного сертификата, выпущенного любым авторизованным центром сертификации.

Центр сертификации Let’s Encrypt выдает SSL-сертификаты с проверкой домена (DV, Domain-validated certificate) бесплатно, срок их действия – 90 дней. Эти сертификаты начального уровня подтверждают домен, а также шифруют и защищают данные при передаче с помощью протокола https. Установить его себе на сайт могут как физические лица, так и организации. Такие SSL-сертификаты подойдут для небольших сайтов и маленьких проектов, когда нет необходимости в большом доверии со стороны клиентов и посетителей сайта. В BitrixVM SSL-сертификаты Let’s Encrypt выпускаются в течение нескольких минут, а продление производится автоматически, примерно за месяц до истечения срока действия.

Если вам нужен SSL-сертификат, который предполагает высокое доверие к вашим продуктам, компании и сервисам, то такие сертификаты выпускают центры сертификации, при этом проводится более тщательная проверка:

  • SSL-сертификаты с проверкой компании (OV, Organization validation) – кроме защиты информации гарантируется принадлежность домена конкретной организации. Сертификат выдается только юридическим лицам с подтвержденным номером телефона. На сайте с таким сертификатом посетитель может найти информацию об организации-владельце сайта, обычно просто щелкнув по иконке замочка.

  • SSL-сертификаты с расширенной проверкой (EV, Extended validation) – то же, что и OV, только проверяется уже налоговая и коммерческая деятельность компании, причем более тщательно. На сайте рядом с замочком появляется название компании. Чаще всего такие сертификаты можно встретить у банков, онлайн-систем с большим количеством посетителей.

Собственные SSL-сертификаты, выпущенные авторизованными центрами, нужно выпускать и продлевать самостоятельно. В BitrixVM такие сертификаты нужно подключать каждый раз, когда происходит их перевыпуск в центре сертификации.



1. Настройка сертификата Let's encrypt (1. Configure "Let's encrypt" certificate)


Важно! Прежде, чем выпускать сертификат Let’s Encrypt, убедитесь, что у вас создан сайт на тот хост (и он доступен из интернета), на который выпускается сертификат, а также указаны правильные DNS-настройки у регистратора или хостера DNS для этого домена. Иначе сертификат не будет выпущен. Плюс к этому есть лимит – 5 ошибок в час выпуска сертификата на аккаунт для одного домена.

Для создания SSL-сертификата Let’s Encrypt нужно:

  • Перейти в меню 8. Manage pool web servers > 3. Configure certificates:

  • Выбрать пункт меню 1. Configure "Let's encrypt" certificate и ввести:
    • site name – имя сайта или несколько имен сайтов, для которых нужно выпустить сертификат(ы) Let's encrypt (в данном примере: test2.b24test.site)
    • dns name(s) – все домены данного сайта, для которых должен быть выпущен сертификат, включая домен с www и без, вводить несколько доменов через запятую
    • email for LE notifications – почтовый адрес для уведомлений сервиса Lets Encrypt

    и подтвердить ввод:

  • Мастер самостоятельно запросит и установит сертификат в течение нескольких минут. Пути SSL-сертификатов будут указаны в этом же разделе:

  • Проверить выпущенный сертификат можно легко – перейти на ваш сайт по протоколу https, у валидного сертификата будет замочек:

Срок действия сертификата – 90 дней. Перевыпуск сертификата происходит автоматически за 20 дней до окончания срока его действия.


Ручное обновление сертификата

С версии BitrixVM 7.4.0 проверка сертификатов автоматически производится еженедельно в субботу в 2 часа ночи по cron-у.

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

Также вы можете вручную обновить сертификаты командой:

/home/bitrix/dehydrated/dehydrated -c

Система проверит сроки действия сертификатов и при необходимости запустит обновление.

Лог обновления сертификатов можно посмотреть по пути: /home/bitrix/dehydrated_update.log.


Важно! У сервиса Lets Encrypt есть свои ограничения на выпуск сертификатов. Основные из них:
  • Выпуск 50 сертификатов в неделю на домены (на зарегистрированные домены у регистратора, поддомены не входят в этот счет).
  • Если у вас много поддоменов, то можно все поддомены указать в одном сертификате, но здесь есть лимит в 100 поддоменов в одном сертификате.
  • 5 ошибок в час выпуска сертификата на аккаунт для одного домена (не доступен хост, не прописаны записи в DNS домена и т.д).
  • Проверка HTTP-01 выполняется только с использованием порта 80. Если этот порт закрыт (провайдером, например), то сертификат не перевыпустится.

Подробнее о лимитах Let’s Encrypt читайте в статье Rate Limits.



2. Настройка собственного сертификата (2. Configure own certificate)

  Свой SSL-сертификат

Если у вас есть свой сертификат, выпущенный любым авторизованным центром сертификации, то можно также его подключить к сайту в BitrixVM.

Важно! Прежде, чем подключать свой сертификат, убедитесь, что у вас создан сайт на тот хост (и он доступен из интернета), на который у вас выпущен сертификат, а также указаны правильные DNS-настройки у регистратора или хостера DNS для этого домена.

У вас должны быть файлы сертификата: приватный ключ (private key), цепочка сертификатов (certificate chain) и сам сертификат (certificate).

Требования к импортируемым сертификатам:
  • Сертификат, приватный ключ и цепочка сертификатов должны быть в PEM-кодировке.
  • Приватный ключ не должен быть зашифрован.
  • Обязательны файлы сертификата и приватного ключа, файл с цепочкой можно не указывать.
  • Если вы используете свои пути для загрузки сертификатов, то нужно указывать при импорте полные пути. Если хотите использовать относительные пути, то файлы сертификатов должны быть загружены в директорию /etc/nginx/certs.

  Подключить свой SSL-сертификат

Для подключения своего SSL-сертификата нужно:

  • Скопировать файлы сертификата в любую директорию на сервере с помощью любого клиента SFTP. В нашем примере мы создали директорию /home/bitrix/ssl/ и скопировали туда файлы сертификата.

    Пути получились такие:

    1. приватный ключ/home/bitrix/ssl/test2.b24test.site_privkey.pem
    2. сам сертификат/home/bitrix/ssl/test2.b24test.site_cert.pem
    3. цепочка сертификатов/home/bitrix/ssl/test2.b24test.site_chain.pem

  • Далее перейти в меню 8. Manage pool web servers > 3. Configure certificates:

  • Выбрать пункт меню 2. Configure own certificate и ввести имя домена (Sitename) или несколько доменов, для которых нужно импортировать сертификат(ы) (в данном примере: test2.b24test.site), путь для приватного ключа (Private Key path), путь для сертификата (Certificate path), путь для цепочки сертификатов (Certificate Chain path) и подтвердить установку сертификата для этого домена:

  • Мастер самостоятельно установит сертификат. Пути SSL-сертификатов будут указаны в этом же разделе:

  • Проверить подключенный сертификат можно легко – перейти на ваш сайт по протоколу https, у валидного сертификата будет зеленый замочек:

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

Примечание: Если вы использовали свою директорию сервера для копирования исходных файлов сертификата, то после импорта сертификата в целях безопасности эти файлы желательно удалить (в примере - /home/bitrix/ssl/). Если вы копировали файлы в /etc/nginx/certs, то удалять их не нужно.


3. Восстановление сертификата по умолчанию (3. Restore default certificate)

Если что-то пошло не так или вы хотите восстановить самоподписанный сертификат, который создается при первом запуске BitrixVM, то для этого нужно:

  • Перейти в меню 8. Manage pool web servers > 3. Configure certificates:

  • Выбрать пункт меню 3. Restore default certificate и ввести certificate file path – это путь к сертификату, который указан в таблице в поле Certificate (в данном примере: /home/bitrix/dehydrated/certs/test2.b24test.site/fullchain.pem) и подтвердить действие:

  • Мастер самостоятельно восстановит SSL-сертификат по умолчанию в /etc/nginx/ssl/cert.pem:



4. Удаление роли web c сервера (4. Remove web role from server)

Для удаления веб-сервера необходимо:

  • Выбрать пункт меню 8. Manage pool web servers > 4. Remove web role from server:

  • Ввести имя хоста сервера, у которого удаляется роль web (например server3):

    Внимание! Удалять web-роль можно только типа spare, тип main (сервер с балансировщиком) удалять нельзя.

  • Подождать, пока задача по удалению роли будет закончена.
  • В итоге из 3 веб-серверов только на двух останется web-роль (main - server1, spare - server2):


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



9. Настроить сервис Push/RTC (9. Configure Push/RTC service for the pool)

Внимание! Данный пункт меню доступен в VMBitrix с версии 7.1.0.


Push-сервер (pulling-сервер, сервер мгновенных сообщений) предназначен для быстрого обмена сообщениями между пользователями, которые заходят на портал через браузер или подключаются с помощью настольного или мобильного приложений.


По умолчанию в VMBitrix для Push&Pull сервера используется модуль Nginx-PushStreamModule. Главный его недостаток - если сервис падает по какой-либо причине, то недоставленные сообщения теряются, что порождает высокую нагрузку на PHP-бэкенд из-за особенностей работы модуля nginx. Новый модуль на NodeJS лишен этих недостатков.

По умолчанию в VMBitrix.CRM для Push&Pull сервера используется модуль на NodeJS.



1. Настроить NodeJS RTC сервис (1. Install/Update NodeJS RTC Service)

Модуль сервера очередей Nginx-PushStreamModule устарел и может работать нестабильно (зависание сообщений, падения). В результате чего сообщения могут не доставляться, это вызывает высокую нагрузку на службу PHP из-за особенностей работы модуля Nginx. Также он ограничен в функционале – в нем нет поддержки protobuf и персональных каналов, которые работают без сервера, нет возможности опроса публичного канала, чтобы узнать, кто в сети, и т.д.

Поэтому крайне рекомендуется использовать вместо устаревшего Nginx-PushStreamModule новый NodeJS-Pushserver.

Чтобы перейти на новый модуль NodeJS RTC вместо Nginx-PushStreamModule, нужно:

  1. В главном меню виртуальной машины выбрать пункт 9. Configure Push/RTC service for the pool > 1. Install/Update NodeJS RTC Service:

  2. Ввести имя хоста, где нужно запустить NodeJS RTC сервис (в примере мы выбрали server1 c запущенным сервисом NginxStreamModule), согласиться на смену модуля NginxStreamModule на NodeJS Push:

  3. Подождать, пока задачи по запуску NodeJS RTC Push&Pull сервера будут закончены:

Примечание В пуле может быть только один сервис Push&Pull. Если у вас запущен Push&Pull сервис на одном сервере, и вы выбираете в качестве сервера другую машину, то мастер остановит Push&Pull сервис на первой машине и запустит его на другой.


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.

Доп. материалы:



2. Удалить NodeJS RTC инстанс (2. Uninstall NodeJS RTC instance)

Чтобы перейти с NodeJS RTC обратно на модуль Nginx-PushStreamModule, нужно:

  1. В главном меню виртуальной машины выбрать пункт 9. Configure Push/RTC service for the pool > 2. Uninstall NodeJS RTC instance:

  2. Ввести имя хоста, где нужно перейти обратно на Nginx-PushStreamModule (в примере мы выбрали server1 c запущенным сервисом NodeJS RTC), согласиться на удаление NodeJS RTC:

  3. Подождать, пока задачи по запуску Nginx-PushStreamModule Push&Pull сервера будут закончены:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



10. Фоновые задачи (10. Background pool tasks)

  Посмотреть историю задач

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

Просмотреть историю задач, а также выполняемые в данный момент задачи, можно с помощью пункта меню 10. Background pool tasks:

Просмотреть запущенную в данный момент задачу можно с помощью пункта меню 10. Background pool tasks > 1. View running tasks:

Для остановки запущенной в данный момент задачи нужно перейти в пункт меню 10. Background pool tasks > 1. View running tasks > 1. Stop task и ввести идентификатор задачи:

Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера.

  Очистить историю задач

Чтобы очистить историю задач нужно выбрать пункт меню 10. Background pool tasks > 2. Delete history:

Далее выбрать количество дней, за которое нужно оставить историю задач, и фильтр, по которому выбирать задачи (к примеру, выберем все задачи с TaskID common):

После этого будут выведены все задачи, удовлетворяющие заданному интервалу и фильтру, и далее запрос на очистку истории:

Внимание! Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



11. Настроить сервис «Конвертер файлов» (11. Configure Transformer service)

Конвертер файлов выполняет преобразование документов и видеофайлов для просмотра в постах или комментариях ленты Новостей и Задач, в Диске, а также осуществляет генерацию документов по шаблонам в CRM.

Роль Конвертер файлов в VMBitrix доступна, начиная с версии 7.5.0.


Для работы роли Конвертер файлов необходимо, чтобы в «1С-Битрикс24» были установлены:

  • Модуль «Конвертер файлов» (transformer) версии 20.100.0 и выше.
  • Модуль «Сервер конвертации файлов» (transformercontroller) версии 20.100.0 и выше.
Внимание! Модуль «Сервер конвертации файлов» (transformercontroller) доступен только в редакции «1С-Битрикс24: Энтерпрайз». Роли Конвертер файлов нет в меню VMBitrix.CRM в связи с недоступностью модуля «Сервер конвертации файлов» (transformercontroller) в редакции «1C-Битрикс24.CRM»


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

1. Настроить сервис «Конвертер файлов» (1. Configure Transformer service)


Ограничения роли Конвертер файлов (Transformer):
  1. Для роли Transformer требуется модуль «Сервер конвертации файлов» (transformercontroller), который доступен только в редакции «1С-Битрикс24: Энтерпрайз».
  2. Нельзя удалить сайт, если для него настроена роль Transformer – сначала нужно удалить роль, потом уже можно удалить сайт.
  3. Вынос роли Transformer на отдельный сервер в пуле (кластере) не предусмотрен.
  4. Возможна установка только одной роли Transformer на машину.

Для настройки роли Transformer:

  1. В главном меню виртуальной машины выберите пункт 11. Configure Transformer service – 1. Configure Transformer service:

  2. Введите имя сайта (в примере vm1.local):

  3. Перед запуском роли Transformer будет выдано оповещение об устанавливаемом ПО. После этого запустится задача configure_transformer_**********, которая:

    • установит пакеты erlang, rabbitmq, libreoffice6.4, ffmpeg и их связи;
    • настроит модули Конвертер файлов (transformer) и Сервер конвертации файлов (transformercontroller) для указанного сайта.

  4. После завершения задачи в модулях Сервер конвертации файлов (transformercontroller) и Конвертер файлов (transformer) будут прописаны все необходимые настройки:

  5. Далее убедитесь, что в Настройках Битрикс24 публичной части или в административном интерфейсе в настройках модуля Диск (Настройки – Настройки продукта – Настройки модулей – Диск) установлена опция Просматривать документы с помощью Битрикс24:

  6. Все готово.


Уроки по теме

Для дальнейшей эксплуатации могут понадобиться другие учебные материалы:


Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.





2. Удалить сервис «Конвертер файлов» (2. Remove Transformer service)

Чтобы удалить роль Конвертер файлов, нужно:

  • В главном меню виртуальной машины выбрать пункт 11. Configure Transformer service – 2. Remove Transformer service:

  • Выбрать пункт 1. Remove Transformer service и согласиться на удаление роли:

  • Запустится задача, которая деактивирует запущенные раннее сервисы, удалит их данные и сбросит настройки модулей «Конвертер файлов» (transformer) и «Сервер конвертации файлов» (transformercontroller).

Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 10. Background pool tasks > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



Дополнительные настройки BitrixVM/BitrixEnv

Внимание!
  1. Для операций, описанных в главе, необходимы начальные знания администрирования. Перед началом проведения данных операций рекомендуется сделать полный бэкап «Виртуальной машины». Также некоторые настройки могут быть недокументированными разработчиком BitrixVM/BitrixEnv «лайфхаками», вы должны понимать, что делаете.
  2. Приведённые настройки сервера выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.



Изменение стандартных настроек BitrixVM без отключения автоподстройки

Внимание! Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

При запуске виртуальной машины BitrixVM или физического сервера с установленным пакетом BitrixEnv сервисом bvat автоматически настраиваются основные параметры Apache, PHP, MySQL и nginx в зависимости от количества доступной памяти. Это позволяет обеспечивать оптимальные настройки сервера.

Но в ряде случаев возникает необходимость изменения некоторых параметров без отключения сервиса bvat. Для внесения таких изменений в настройки сервера предусмотрены специальные конфигурационные файлы, позволяющие переопределять параметры, устанавливаемые сервисом bvat. Они имеют свое название и хранятся в директориях:

  • MySQL: /etc/mysql/conf.d/z_bx_custom.cnf

  • Apache: /etc/httpd/bx/custom/z_bx_custom.conf

  • nginx:
    • /etc/nginx/bx/site_ext_enabled/ - конфигурационные файлы своих дополнительных сайтов для всего сервера (например, bx_ext.conf, bx_ext_custom1.conf, ext_custom_site.com.conf и т.п)
    • /etc/nginx/bx/settings/ - конфигурационные файлы настроек для уровня http всего сервера (например, z_bx_custom.conf, z_bx_custom1.conf и т.п)
    • /etc/nginx/bx/site_settings/<SITE_NAME>/ - персональные настройки конкретного сайта, начиная с версии BitrixVM 7.5 или бета версии 7.4.10 (например, /etc/nginx/bx/site_settings/site.com/myconfig.conf).

    Конфигурационный файл nginx в этих директориях может быть как один общий, так несколько. Имя файла не имеет значения, главное, чтобы в них были неконфликтующие настройки.
  • PHP: /etc/php.d/z_bx_custom.ini

В случае, если в этих директориях нет конфигурационных файлов, то их можно создать самостоятельно.

Внимание! Все изменения стандартных конфигурационных файлов Apache, PHP, MySQL и nginx могут быть утрачены во время обновления виртуальной машины BitrixVM/BitrixEnv. Чтобы этого не произошло, все переопределяемые параметры должны быть только в файлах типа z_bx_custom.*, указанных выше для каждого сервиса.

Для вступления переопределяемых параметров в силу нужно перезапустить соответствующие службы: MySQL, Apache или nginx.

Пример изменения параметров в файле z_bx_custom.cnf



Увеличение дискового пространства BitrixVM

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

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

Решить эту проблему можно двумя способами:

  1. добавить в виртуальную машину еще один жесткий диск, смонтировать его в системе и перенести на него часть контента (наиболее оптимальный способ);
  2. увеличить размер существующего виртуального жесткого диска.


Добавление дополнительного жесткого диска BitrixVM

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

Так как основной объем дискового пространства потребляется контентом сайтов и их резервными копиями, расположенными в /home/bitrix, а также БД, расположенной в /var/lib/mysql, то на отдельные диски следует выносить именно эти разделы.

Рассмотрим данную задачу на примере переноса на отдельный диск папки /home с контентом сайтов и их резервными копиями.

  • Для этого в настройках виртуальной машины в список оборудования, добавляем новый диск необходимого размера. Все указанные ниже действия необходимо осуществлять под учетной записью администратора root:

  • После добавления диска, для его инициализации, возможно, потребуется перезагрузить сервер. Увидеть новый диск и присвоенное ему буквенное обозначение можно, выполнив команду:
    fdisk -l

  • Запускаем утилиту fdisk для работы с диском /dev/sdb:
    fdisk /dev/sdb

    И командой n создаем новый раздел:

    • основной (primary partition) - команда p и Partition number (1-4): 1;
    • первый и последний сектора при этом выбираем по умолчанию - таким образом, будет создан раздел, используя все свободное пространство на диске:

  • Для сохранения изменений на диск и выхода из fdisk введите команду w.

  • После сохранения таблицы разделов, форматируем новый раздел и переносим на него информацию из /home:

    CentOS 6
    mkfs.ext4 /dev/sdb1 
    mount /dev/sdb1 /mnt 
    service httpd stop 
    service nginx stop
    mv -f /home/* /mnt 
    umount /mnt
    
    CentOS 7
    mkfs.ext4 /dev/sdb1 
    mount /dev/sdb1 /mnt 
    systemctl stop httpd.service
    systemctl stop nginx.service
    mv -f /home/* /mnt 
    umount /mnt
    
  • Следующим шагом определяем UUID нового диска:
    blkid
    /dev/sda1: UUID="99066558-ba04-465c-9962-e827aa2928ec" TYPE="ext4" 
    /dev/sda2: UUID="8ea38ef9-1ee5-423b-a013-15fd603a678e" TYPE="swap" 
    /dev/sda3: UUID="08ec5c65-8fd8-47ac-a998-d81195c8f964" TYPE="ext4" 
    /dev/sdb1: UUID="b2e58731-b621-4bd5-909a-afe3bb5dd8a1" TYPE="ext4"
    

    и добавляем запись (в данном примере: UUID=b2e58731-b621-4bd5-909a-afe3bb5dd8a1) о нем в /etc/fstab (вместо UUID можно также использовать имя устройства /dev/sdb):

  • Остается только примонтировать новый диск и запустить остановленные ранее службы:

    CentOS 6
    mount /home 
    service httpd start 
    service nginx start 
    
    CentOS 7
    mount /home 
    systemctl start httpd.service
    systemctl start nginx.service
    

Добавление дисков в других средах виртуализации или непосредственно на физическом сервере проходит аналогично.


Внимание! Если создаете на новом диске директорию /home/bitrix/www вручную, то убедитесь, чтобы она имела права bitrix:bitrix - 755 для директории и 644 - для файлов.


Увеличение размера существующего жесткого диска BitrixVM

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

Вторым способом увеличения дискового пространства в BitrixVM является увеличение размера уже существующего жесткого диска виртуальной машины.

  1. Сначала измените размер системного диска на требуемый, например до 100Гб:

    Изменить размер системного диска в VMWare

    Изменить размер системного диска в VirtualBox
  2. Далее необходимо запустить виртуальную машину BitrixVM, авторизоваться под root и перейти в режим командной строки (консоль), выбрав пункт меню 0. Exit в виртуальной машине.

  3. Смотрим диск и присвоенное ему буквенное обозначение консольной командой:
    fdisk -c -u -l

    где для диска /dev/sda:

    • sda1 - загрузочный сектор диска;
    • sda2 - файл подкачки (swap);
    • sda3 - раздел, в котором установлена операционная система и который как раз и нужно увеличить.


  4. Запускаем утилиту fdisk для работы с диском /dev/sda:
    fdisk -c -u /dev/sda
  5. Командой d удаляем раздел sda3, выбрав Partition number (1-4): 3:

    Внимание! Данные с диска при этом никуда не удаляются, в данном случае удаляется лишь запись о разделе из таблицы разделов диска.

  6. Далее командой n создаем новый раздел:
    • основной (primary partition) - команда p и Partition number (1-4): 3;
    • первый и последний сектора при этом выбираем по умолчанию - таким образом, будет создан раздел, используя все свободное пространство на диске.

  7. Для сохранения обновленной таблицы разделов и выхода из fdisk введите команду w:

  8. Чтобы система подгрузила новую таблицу разделов, необходима перезагрузка виртуальной машины:
    reboot
  9. После перезагрузки с помощью утилиты resize2fs увеличиваем размер файловой системы раздела /dev/sda3:
    resize2fs /dev/sda3

Проверить, что раздел увеличен можно с помощью команды df:

Изменение размера дисков в других средах виртуализации проходит аналогично.



Увеличение размера LVM-раздела BitrixEnv

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация – ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.
  3. При автоматической разбивке диска на этапе установки системы CentOS 7, например в случае будущего развертывания VMBitrix c помощью скрипта bitrix_env.sh на готовый CentOS 7, устанавливается менеджер логических томов LVM2. В таком случае изменение размера LVM-раздела будет отличаться от предыдущих способов.


Пусть размер системного диска был увеличен с 20 ГБ до 100Гб, как было сделано ранее в VMWare или VirtualBox (пункт 1).

Тогда действия по изменению размера LVM-раздела будут такими:

  1. Смотрим, что в системе на данный момент есть из устройств/разделов командой:
    fdisk -l

  2. Убеждаемся, что место в системе автоматически не увеличилось при помощи команды:
    df -h

    Здесь мы также видим и запоминаем имя группы томов и имя тома – centos_vb1-root (у вас они будут другие):

    • centos_vb1 – имя группы томов;
    • root – имя тома.

  3. Создаем новый раздел sda3 – тип раздела: Linux LVM (код типа 8e) на неразмеченной области. Для этого начинаем работу с устройством sda c помощью команды:
    fdisk /dev/sda
  4. Далее командой n создаем новый раздел:
    • основной (primary partition) – команда p и Partition number (1-3, default 3): 3 (так как у нас было 2 логических раздела sda1 и sda2 – см. п.1);
    • первый и последний сектора при этом выбираем по умолчанию – нажмите Enter, таким образом, будет создан раздел, используя все свободное пространство на диске;
    • укажем тип раздела – команда t и Partition number (1-3, default 3): 3;
    • вводим код типа раздела, соответствующий Linux LVM – 8e;
    • смотрим таблицу разделов – команда p и убеждаемся, что все верно;
    • Раздел sda3 создан. Для сохранения обновленной таблицы разделов и выхода из fdisk – команда w.

  5. Чтобы система подгрузила новую таблицу разделов, необходима перезагрузка виртуальной машины:
    reboot
  6. После перезагрузки необходимо создать физический том sda3:
    pvcreate /dev/sda3
  7. Далее расширяем группу томов на новое пространство, используя имя группы томов centos_vb1 (которое мы запомнили ранее в п.2):
    vgextend /dev/centos_vb1 /dev/sda3
  8. Теперь расширим логический том, используя имя тома root (которое мы запомнили ранее в п.2):
    lvextend -l+100%FREE /dev/centos_vb1/root
  9. Сканируем диски на предмет наличия групп томов и активируем все найденные группы томов:
    vgscan
    vgchange -ay
    

  10. Узнаем тип файловой системы:
    file -s /dev/sda1

    Видим, что файловая система XFS.

  11. И наконец, расширяем файловую систему XFS (может потребоваться время):
    xfs_growfs /dev/centos_vb1/root

    Внимание! Если файловая система не XFS, а, например, ext4 или reiserfs, то команды будут такие (с учетом centos_vb1 – имя группы томов и root – имя тома из п.2):
    • resize2fs /dev/centos_vb1/root – для ext4;
    • resize_reiserfs /dev/centos_vb1/root – для reiserfs;

  12. Проверяем итоговый результат:
    df -h



Подключение Swap-раздела

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

Виртуальная машина BitrixVM поставляется с swap-разделом 256 МБ, а в образе ami он по умолчанию не подключен. Поэтому в процессе эксплуатации может возникнуть необходимость в расширении раздела подкачки.

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

Для этого:

  • подключаем к виртуальной машине диск или создаем файл подкачки:
    dd if=/dev/zero of=/swapfile bs=1M count=1024
    
  • создаем на диске:
    mkswap /dev/sdb1
    
    или в файле swap-раздел:
    mkswap /swapfile
    
  • подключаем раздел подкачки:
    swapon /dev/sdb1
    
    или файл подкачки:
    chmod 600 /swapfile
    swapon /swapfile
    
  • и наконец, добавляем запись о новом разделе подкачки в /etc/fstab, чтобы не включать после каждой перезагрузки вручную:
    /dev/sdb1 none swap sw 0 0
    
    или о файле подкачки:
    /swapfile none swap sw 0 0
    


Ручная настройка memcached

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

  Настройка memcached

В случае, если в проекте планируется использовать memcached, необходимо произвести его настройку в соответствии с предполагаемой нагрузкой.

Для этого необходимо:

  1. В файле /etc/sysconfig/memcached задать следующие параметры:
    • MAXCONN = "1024" - количество одновременных подключений (по умолчанию 1024);
    • CACHESIZE="1024" - объем выделяемой памяти для кеша (по умолчанию 64MB);
    • OPTIONS="-t 8" - количество потоков memcached (по умолчанию 4).

    Примечание: Параметры MAXCONN, CACHESIZE и OPTIONS подбираются экспериментальным путем в зависимости от характера нагрузки и от имеющихся ресурсов.

    Оценить объем памяти, необходимой для кеширования (параметр CACHESIZE), можно по размеру вашего файлового кеша. Если у вас на проекте файловый кеш занимает 3 GB, то использование memcached c 256МБ памяти не будет эффективным за счет частого вытеснения.

  2. После настройки memcaсhed необходимо перезапустить командой:

    CentOS 6:

    service memcached restart
    

    CentOS 7:

    systemctl restart memcached.service
    
  3. Далее подключить его в /bitrix/php_interface/dbconn.php:

    define("BX_CACHE_TYPE", "memcache");
    define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
    define("BX_MEMCACHE_HOST", "127.0.0.1");
    define("BX_MEMCACHE_PORT", "11211");
    

    И в файле /bitrix/.settings_extra.php (если его нет, то создать):

    <?php
    return array(
      'cache' => array(
        'value' => array(
          'type' => 'memcache',
          'memcache' => array(
            'host' => '127.0.0.1',
            'port' => '11211',
          ),
          'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
        ),
      ),
    );
    ?>
    

  Работа с memcached через сокет

В случае, если используется один сервер, то для улучшения производительности можно настроить работу с memcached через сокет:

  1. В файле /etc/sysconfig/memcached задать параметры:

    • USER="bitrix" - пользователь, от которого будет запущен memcached;
    • OPTIONS="-t 8 -s /tmp/memcached.sock" - количество потоков и путь к сокету.

  2. Перезапустить memcached командой:

    CentOS 6:

    service memcached restart
    

    CentOS 7:

    systemctl restart memcached.service
    
  3. После этого необходимо изменить настройки в /bitrix/php_interface/dbconn.php:

    define("BX_CACHE_TYPE", "memcache");
    define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
    define("BX_MEMCACHE_HOST", "unix:///tmp/memcached.sock");
    define("BX_MEMCACHE_PORT", "0");
    

    И в файле /bitrix/.settings_extra.php (если его нет, то создать):

    <?php
    return array(
      'cache' => array(
        'value' => array(
          'type' => 'memcache',
          'memcache' => array(
            'host' => 'unix:///tmp/memcached.sock',
            'port' => '0',
          ),
          'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
        ),
      ),
    );
    ?>
    

Примечание: Если используется многосайтовость, то в примере указывается статичный [dw]sid[/dw][di]Идентификатор сайта, поле ID в параметрах настройки сайта[/di], без $_SERVER["DOCUMENT_ROOT"]. Иначе для двух сайтов кеш будет отличаться, так-как папки сайтов разные.



Исправление ошибок в старых сайтах с кодировкой windows-1251

Внимание! Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

При обновлении старых сайтов в кодировке Windows-1251, созданных в VMBitrix версии 7.4.3 или ниже, могут быть следующие ошибки:

  • Не работает Система обновлений продуктов «1С-Битрикс» – требует наличия параметра mb_internal_encoding('Windows-1251'); в dbconn.php.

  • При включенных предупреждениях Система обновлений не работает из-за предупреждения: «PHP Warning: htmlspecialchars(): charset `latin' not supported, assuming utf-8».

  • Проверка системы выдает ошибку «Строковые функции strtoupper и strtolower работают некорректно».


При обновлении VMBitrix до версии 7.5 и выше данные ошибки в установленных ранее сайтах в кодировке Windows-1251 автоматически не исправляются, поэтому вам нужно исправить их вручную для каждого такого сайта.

  1. Добавьте в файл /bitrix/php_interface/dbconn.php сайта строку:

    mb_internal_encoding('Windows-1251');
    
  2. В конфигурационном файле Apache для вашего сайта /etc/httpd/bx/conf/bx_ext_[ваш_сайт].conf замените строку:

    php_admin_value default_charset latin
    
    на такую:
    php_admin_value default_charset cp1251
    

    И перезапустите Apache:

    systemctl restart httpd.service
    
  3. Проверьте, есть ли локаль ru_RU.cp1251 в системе. Если ответ 0 – значит локали ru_RU.cp1251 нет, если 1 – есть:

    locale -a | grep ru_RU.cp1251 -ic
    

    Если локали ru_RU.cp1251 нет, выполните команду:

    localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
    
  4. Далее добавьте в файл /bitrix/php_interface/dbconn.php вашего сайта в кодировке windows-1251 две строки:

    setlocale(LC_ALL, 'ru_RU.CP1251' );
    setlocale(LC_NUMERIC, 'C' );
    

    И перезапустите Apache:

    systemctl restart httpd.service
    
  5. Все готово. Проделайте эти действия для каждого сайта с кодировкой windows-1251, установленного ранее.


Примечание: В VMBitrix 7.5 и выше новые сайты, создаваемые в кодировке Windows-1251, проблем с однобайтовыми кодировками не имеет.


Корректное монтирование Windows-ресурсов

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.


В случае необходимости подключения сетевого диска Windows в качестве хранилища для WebDAV можно воспользоваться следующей командой:

mount.cifs \\\\xxx.xxx.xxx.xxx\\folder /home/bitrix/www/docs/folder/smb -o user=XXXX,password=XXXX,uid=600,gid=600,file_mode=0777,noserverino  
где:
  • uid - идентификатор пользователя bitrix;
  • gid - идентификатор группы bitrix;
  • \\\\xxx.xxx.xxx.xxx\\folder - путь к сетевому ресурсу \\xxx.xxx.xxx.xxx\folder (\ используется для экранирования символов);
  • /home/bitrix/www/docs/folder/smb - папка, куда будет смонтирован диск.

Примечание: Использование опции noserverino является обязательным, так как в PHP есть уязвимость.


Выполнение всех агентов на Cron

Внимание! Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

Перенос агентов на cron

На больших и не очень проектах часто возникает вопрос с переносом исполнения некоторых особо тяжелых агентов на Cron. Агент считается "тяжёлым", если время его выполнения более 10 минут.

  • Для начала полностью отключим выполнение агентов на хите. Для этого необходимо выполнить команду в php-консоли административного меню продукта «1С-Битрикс» /bitrix/admin/php_command_line.php?lang=ru:
    COption::SetOptionString("main", "agents_use_crontab", "N"); 
    echo COption::GetOptionString("main", "agents_use_crontab", "N"); 
    
    COption::SetOptionString("main", "check_agents", "N"); 
    echo COption::GetOptionString("main", "check_agents", "Y");
    

    В результате выполнения должно быть NN.

  • Убираем из файла /bitrix/php_interface/dbconn.php определение следующих констант:
    define("BX_CRONTAB_SUPPORT", true);
    define("BX_CRONTAB", true);
    

    И заменяем:

    if(!(defined("CHK_EVENT") && CHK_EVENT===true))
       define("BX_CRONTAB_SUPPORT", true);
     
  • Далее добавляем запуск системного скрипта в Cron:
     */1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
    
    Замените /home/bitrix/www/ на свой путь к корню сайта.

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

Примечание: Если после выполнения команды cron не заработал, то, значит, у вас ошибки в проекте. Эти ошибки, скорее всего, не связаны с агентами. Надо смотреть в логах PHP. Включить расширенный вывод ошибок можно в файле настроек .settings.php.

Очередь отправки почтовых сообщений

Чтобы не увеличивалась очередь отправки почтовых сообщений, нужно изменить параметр, отвечающий за количество почтовых обрабатываемых за раз событий. Для этого выполняем в php-консоли следующую команду:

COption::SetOptionString("main", "mail_event_bulk", "20"); 
echo COption::GetOptionString("main", "mail_event_bulk", "5");

Если очередной запуск cron_events.php произошёл до завершения работы ранее запущенного скрипта, то запуска агентов не произойдет и скрипт завершит свою работу (т.к. агенты блокируются на время выполнения). В данном случае обработка ничем не отличается от обработки на хите, новый хит может произойти в тот момент, когда еще не отработали агенты на предыдущем.

Как правило, скрипты, выполненные из под cron, не имеют ограничения на время исполнения. Но если в скриптах используются методы для работы с БД, то можно столкнуться с ошибкой выполнения вложенных скриптов. Для избежания этой ошибки можно подправить значение в /bitrix/php_interface/dbconn.php:

// если скрипт выполняется кроном, то лимит подключения к БД - 600 секунд, иначе - 60
@set_time_limit(php_sapi_name() == "cli" ? 600 : 60);


Опции монтирования

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

Для обеспечения более высокой производительности файловой системы рекомендуем отключать изменение метки времени при чтении файлов и директорий: noatime, nodiratime.

Для этого в /etc/fstab нужно отредактировать (добавить в текущую строку) параметры в строке со своим UUID:

UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 /    ext4    defaults,noatime,nodiratime    1 1
где UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 - уникальный идентификатор диска, который можно узнать в консоли по команде blkid.

Примечание: Вместо UUID можно также использовать имя устройства: /dev/sda1, /dev/sda2, /dev/sda3. Или метку тома если она задана, например: LABEL=root.

После перезагрузки новые настройки начнут действовать.

Чтобы применить новые настройки, не перезагружая сервер, можно выполнить перемонтирование разделов командой:

mount -o remount,noatime,nodiratime /

Примечание: К решению проблемы производительности файловой системы нужно подходить творчески. Если, например, на диске есть еще кеш некоторых приложений, то от предложенных мер производительность может снизиться, так как многие приложения очищают кеш по метке доступа, которые в примере предлагается отключить. В некоторых случаях увеличение времени коммита может дать лучший результат, особенно если много оперативной памяти. Время коммита задается параметром commit. Для установки его в 120 секунд, например, необходимо добавить commit=120. То есть набор опций монтирования будет defaults,noatime,commit=120.

По умолчанию сброс данных и метаданных на диск происходит каждые 5 сек. Откладывание времени сброса, так же может уменьшить фрагментацию файлов на диске, если есть файлы, в которые часто происходит дописывание данных. Например логи.


Подключение IDE

Внимание! Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

Для упрощения работы с Bitrix Framework в виртуальную машину включён Xdebug. Работает он по схеме:

Перед изменением настроек надо переименовать файл xdebug.ini.disabled в xdebug.ini и перезапустить httpd.

Для настройки машины воспользуйтесь следующим примером:

$ cat /etc/php.d/xdebug.ini
; Enable xdebug extension module
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=on
xdebug.remote_host=192.168.205.1
xdebug.remote_port=9000

Примечание: Xdebug требует использовать proxy при работе через Network Address Translation (NAT), необходимо открыть порт 9000.


Исходные коды пакетов (начиная с версии 7.3.0!)

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

При разработке своих решений на основе виртуальной машины BitrixEnv/VMBitrix.CRM, может понадобиться отслеживание изменений в версиях файлов. Для этого вы можете подключить репозиторий исходников виртуальной машины.

Внимание! Исходные коды пакетов доступны для стабильных и бета-версий VMBitrix/VMBitrix.CRM, начиная с версии 7.3.0.


Стабильная VMBitrix/VMBitrix.CRM

  1. Добавляем файл для репозитория /etc/yum.repos.d/bitrix-source-stable.repo с содержимым:

    [bitrix-source-stable]
    name=$OS $releasever - source
    failovermethod=priority
    baseurl=https://repo.bitrix.info/yum/SRPMS
    enabled=1
    gpgcheck=1
    gpgkey=https://repo.bitrix.info/yum/RPM-GPG-KEY-BitrixEnv
    
  2. Проверяем, что есть пакет yum-utils:

    yum clean all && yum install yum-utils
    
  3. Скачиваем исходники виртуальной машины:

    • VMBitrix:

      yumdownloader --source bitrix-env
      
      Примерный ответ в консоли для обычной VMBitrix
    • VMBitrix.CRM

      yumdownloader --source bitrix-env-crm
      
      Примерный ответ в консоли для VMBitrix.CRM

Бета VMBitrix/VMBitrix.CRM

  1. Добавляем файл для репозитория /etc/yum.repos.d/bitrix-source-beta.repo с содержимым:

    [bitrix-source-beta]
    name=$OS $releasever - source
    failovermethod=priority
    baseurl=https://repo.bitrix.info/yum-beta/SRPMS
    enabled=1
    gpgcheck=1
    gpgkey=https://repo.bitrix.info/yum/RPM-GPG-KEY-BitrixEnv
    
  2. Проверяем, что есть пакет yum-utils:

    yum clean all && yum install yum-utils
    
  3. Скачиваем исходники виртуальной машины:

    • VMBitrix:

      yumdownloader --source bitrix-env
      
    • VMBitrix.CRM

      yumdownloader --source bitrix-env-crm
      


Ручное включение php-расширений

Внимание!
  1. Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».
  2. Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

  Ручное включение

Помимо [ds]включения некоторых php-расширений из меню BitrixEnv[/ds][di]В разделе 8. Manage web nodes in the pool > 2. Manage PHP extensions можно включить дополнительные модули PHP, которые могут понадобится в продуктах «1C-Битрикс».

Подробнее ...[/di] можно включать нужные расширения вручную.

Конфигурационные ini-файлы доступных php-расширений находятся в директории /etc/php.d/:

Чтобы вручную включить нужное расширение, нужно файл {имя_расширения}.ini.disabled переименовать в {имя_расширения}.ini и перезапустить сервис Apache – httpd.

  Пример

Например, нам нужно включить расширение dom.

  1. Переходим в директорию сервера /etc/php.d/:

    cd /etc/php.d/
    
  2. Выводим список файлов в директории:

    ls
    
  3. Находим в списке файл 20-dom.ini.disabled, переименуем его в 20-dom.ini и сохраним с заменой текущего:

    mv 20-dom.ini.disabled 20-dom.ini
    

    Внимание! Если скопировать содержимое 20-dom.ini.disabled в 20-dom.ini и оставить эти два файла в директории /etc/php.d/, то при обновлении PHP или виртуальной машины dom-расширение будет деактивировано. Чтобы этого не произошло, нужно оставлять только один файл 20-dom.ini с активированным расширением.

  4. Далее перезапустим сервис Apache – httpd:

    • CentOS 6:

      service httpd restart
      
    • CentOS 7:

      systemctl restart httpd.service
      
  5. Все готово, расширение dom работает:

  Установка php-расширения, которого нет в BitrixVM

Также вы можете установить любое php-расширение самостоятельно.

Например установим расширение php-imap.

Сначала нужно найти имя php-расширения с помощью команды:

yum list php-imap*

Далее установить командой:

yum install php-imap

При установке будет создан файл /etc/php.d/20-imap.ini.

Затем нужно перезапустить сервис httpd.

Все готово, php-расширение imap работает:

Примечание: Некоторые php-расширения могут автоматически сами включаться после установки. Если ini-файл не был создан во время установки расширения, нужно создать его самостоятельно.



Настройка проксирования в BitrixVM

Внимание! Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

Очень частая ситуация, когда BitrixVM располагают внутри локальной сети офиса и проксируют запросы на нее из внешней сети Интернет.

Под проксированием будем понимать http-прокси, который имеет внешний адрес и позволяет организовать подключение пользователей к сайту, расположенному на виртуальной машине BitrixVM, а также сетевое оборудование, которое позволяет на уровне TCP/IP организовать подключение.



Настройка сервера

Внимание! Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

  Организация работы web-сокетов

Основная особенность в данном случае – это организация работы web-сокетов (ws/wss протоколов), так как бывают ситуации, когда требуются дополнительные настройки для того, чтобы сетевое оборудование не прерывало соединение по таймауту.

Настройку сетевого оборудования мы обсуждать не будем – предположим, что уже все настроено, поддержка web-сокетов включена.

Опишем ситуацию, когда понадобилось для работы перенести порт для ws/wss протоколов.

  1. Конфигурация виртуальной машины

Создаем конфигурационный файл /etc/nginx/bx/site_ext_enabled/rtc_ext.conf:

server {
	listen 1137;
	listen 1139 default_server ssl;

	#access_log off;

	server_name _;

	# ssl settings
	include bx/conf/ssl.conf;


	# Include im subscrider handlers
	include bx/conf/im_subscrider.conf;

	location / {
		deny all; 
	}
}
Внимательно отнеситесь к настройкам SSL (https). Нужно использовать те же настройки и тот же SSL-сертификат, что и на сайте, к которому предполагается подключить Push-server. Пример настроек можно взять из конфигурационного файла: /etc/nginx/bx/site_enabled/rtc-server.conf.

Не забываем перезапустить nginx после того, как внесли все коррективы.

CentOS 6:

service nginx restart

CentOS 7:

systemctl restart nginx.service

  2. Открытие портов

Открываем порты в виртуальной машине BitrixVM:

iptables:

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1137 -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1139 -j ACCEPT
iptables-save > /etc/sysconfig/iptables

firewalld:

firewall-cmd --permanent --add-port=1137/tcp
firewall-cmd --permanent --add-port=1139/tcp
firewall-cmd --reload

  3. Изменение настроек сайта

Добавляем выбранные порты в конфигурационный файл bitrix/.settings.php:

'pull_s1' => 'BEGIN GENERATED PUSH SETTINGS. DON\'T DELETE COMMENT!!!!',
'pull' => Array(
    'value' =>  array(
...
        'path_to_websocket' => 'ws://#DOMAIN#:1137/bitrix/subws/',
        'path_to_websocket_secure' => 'wss://#DOMAIN#:1139/bitrix/subws/',
...
    ),
),
'pull_e1' => 'END GENERATED PUSH SETTINGS. DON\'T DELETE COMMENT!!!!',

И затем проверяем работу через браузер.



Проксирование запросов

Внимание! Приведённые настройки выходят за рамки меню Виртуальной машины. Это означает, что информация - ознакомительная и применять её следует с чётким пониманием того что вы делаете и с собственной ответственностью за совершаемые действия. В нашей техподдержке рассматриваются только вопросы по работе пунктов меню ВМ.

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

  Push-server

Вне зависимости от того, как организована у вас работа балансера – единственная точка входа или он обслуживает только запросы клиентов из внешних сетей, а BitrixVM запросы внутренней сети – на него нужно перенести настройки Push-server.

Переносим настройки проксирования запросов push на балансер – можно взять конфигурационный файл виртуальной машины bx/conf/im_subscrider.conf за основу (можно прям его скопировать на балансер):

location ~* ^/bitrix/subws/ {
    access_log off;
    proxy_pass http://nodejs_sub;
    # http://blog.martinfjordvald.com/2013/02/websockets-in-nginx/
    # 12h+0.5
    proxy_max_temp_file_size 0;
    proxy_read_timeout  43800;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $replace_upgrade;
    proxy_set_header Connection $connection_upgrade;
}

location ~* ^/bitrix/sub/ {
    access_log off;
    rewrite ^/bitrix/sub/(.*)$ /bitrix/subws/$1 break;
    proxy_pass http://nodejs_sub;
    proxy_max_temp_file_size 0;
    proxy_read_timeout  43800;
}

location ~* ^/bitrix/rest/ {
    access_log off;
    proxy_pass http://nodejs_pub;
    proxy_max_temp_file_size 0;
    proxy_read_timeout  43800;
}

Данный файл подключаем к серверу, на котором настроено проксирование запросов на виртуальную машину.


Верхний конфигурационный файл зависит от bx/settings/rtc-im_settings.conf, в котором определяются следующие параметры:

  • передача заголовков Upgrade и Connection через переменные:
    # if connection ti not set
    map $http_upgrade $connection_upgrade {
      default upgrade;
      '' 'close';
    }
    
    map $http_upgrade  $replace_upgrade {
      default $http_upgrade;
      ''      "websocket";
    }
    
  • upstream-server
    upstream nodejs_sub {
      ip_hash;
      keepalive 1024;
      server push:8010;
      server push:8011;
      server push:8012;
      server push:8013;
      server push:8014;
      server push:8015;
    }
    
    
    upstream nodejs_pub {
      ip_hash;
      keepalive 1024;
      server push:9010;
      server push:9011;
    }
    

Данный файл bx/settings/rtc-im_settings.conf тоже можно скопировать и подключить на уровне http-секции на балансере.

Важно! В файле bx/settings/rtc-im_settings.conf указано имя push-сервера, в рамках виртуальной машины BitrixVM все имена серверов пула прописаны в /etc/hosts. Внешний балансер об этом ничего не знает, поэтому нужно или прописать соответствие в hosts-файл балансера, или поменять настройку на IP-адрес push-сервера.

Далее на push-server необходимо открыть порты 8010-8015 и 9010-9011 для доступа с балансера.

iptables:

iptables -I INPUT -p tcp --match multiport --dport 8010:8015 -j ACCEPT
iptables -I INPUT -p tcp --match multiport --dport 9010:9011 -j ACCEPT
iptables-save > /etc/sysconfig/iptables

firewalld:

firewall-cmd --permanent --add-port=8010-8015/tcp
firewall-cmd --permanent --add-port=9010-9011/tcp
firewall-cmd --reload

  HTTPS доступ

Предположим, мы проксируем http и https сайта test.example.org на 80 порт виртуальной машины BitrixVM.

Включим модуль real_ip в BitrixVM – создаем конфигурационный файл bx/settings/real_ip.conf:

set_real_ip_from BALANCER_IP;
real_ip_header X-Forwarded-For;

В качестве real_ip_header нужно указать заголовок балансера, который он передает на бэкенд (виртуальную машину BitrixVM). В set_real_ip_from – IP-адрес балансера.

Перезапускаем nginx.

CentOS 6:

service nginx restart

CentOS 7:

systemctl restart nginx.service

Далее настраиваем передачу протокола, по которому клиент работает с сервером.

Нам нужно, чтобы балансер передавал на бэкенд-сервер информацию о протоколе:

proxy_set_header X-Forwarded-Proto $scheme;

На бэкенде (виртуальная машина BitrixVM) делаем конфигурацию для настройки переменных в файле bx/settings/schema.conf:

map $http_x_forwarded_proto $balancer_port {
   default 80;
   "https" 443;
}

map $http_x_forwarded_proto $balancer_https {
    default "NO";
    "https" "YES";
}

Тогда на бэкенде переменная $http_x_forwarded_proto будет содержать значение http или https в зависимости от протокола подключения.


Далее нам потребуется конфигурационный файл сайта:

сайт по умолчанию – /etc/nginx/bx/site_enabled/s1.conf
дополнительный сайт – /etc/nginx/bx/site_enabled/bx_ext_test.example.org.conf

В конфигурационном файле сайта нас интересует часть:

proxy_set_header Host $host:80;

Меняем указанную выше часть на:

proxy_set_header Host $host:$balancer_port;
proxy_set_header HTTPS $balancer_https;

Перезапускаем nginx:

CentOS 6:

service nginx restart

CentOS 7:

systemctl restart nginx.service

Все готово.



BitrixVM API для провайдеров

В главе описывается API, помощью которого можно подключить процедуру заказа/создания машины в управлении пулом в продуктах «1С-Битрикс».



Провайдеры

Вся работа с провайдерами осуществляется с помощью плагинов, расположенных в определенном каталоге (на текущий момент всё управление сделано на файлах): /opt/webdir/providers.

Для каждого провайдера предусмотрены:

  • обязательные параметры командной строки для универсализации доступа к их возможностям;
  • стандартизированный вывод по завершению обработки результатов.

Скрипт плагина, который будет использован в web-интерфейсе продуктов «1С-Битрикс», должен быть раcположен по адресу:

/opt/webdir/providers/{provider_name}/bin/{provider_name}

Для подключения в пул плагин провайдера должен поддерживать следующие аргументы командной строки:

  • help - отображает поддерживаемые аргументы командной строки:
    {
      "options": [
        "help",
        "configs",
        "order",
        "order_status"
      ],
      "status": "enabled"
    }
    

    Массив options должен содержать список поддерживаемых опций (например, в данном случае отсутствует опция init, которая позволяет подключиться на этапе создания мастер сервера).

    Опция status может содержать следующие значения: disabled или enabled, что позволяет определить включен или выключен провайдер на конкретном сервере.

  • configs - отображает список поддерживаемых конфигураций:
    {
      "configurations": [
        {
          "id": "1",
          "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb"
        }
      ],
      "status": "enabled"
    }
    

    configurations - содержит список сервисов/конфигураций, которые может заказать пользователь, используя web интерфейс «1С-Битрикс».

    На текущий момент поддерживается два параметра по каждой конфигурации:

    • id - идентификатор конфигурации, который будет использован в заказе,
    • descr - описание для пользователя.
  • order - позволяет заказать сервер/VPS выбранной конфигурации, вторым параметром в данном случае будет передан номер конфигурации:
    {"task_id":"24"}
    

    task_id должен содержать номер задания, который используется для дальнейшего опроса и старта добавления машины по завершению.

  • order_status - позволяет получить информацию по заказу:
    {
      "server_password": "XXXXXXXXXXXXXX",
      "status": "finished",
      "server": "xxx.xxx.xxx.xxx",
      "task_id": "24"
    }
    
    где:
    • status - содержит информацию по заказу, может содержать следующие значения:
      • in_progress - находится на обработке со стороны провайдера/хостера;
      • finished - обработка завершена, можно добавлять машину в пул;
      • error - во время выполнения произошла ошибка.
    • server - содержит ip address или имя машины;
    • server_password - содержит пароль пользователя root для копирования ssh-ключей при подключение сервера в пул.

    Любое из действий может сообщить об ошибке с помощью значений в полях error и error_message. Например:

    {
      "error_message": "get_task error N102, No task found",
      "error": 1
    }
    

Внимание! Информацию о работе скрипта, который использует возможности провайдеров и позволяет подключить их в web- интерфейс, см Скрипт работы с провайдерами.



Скрипт работы с провайдерами

Данный скрипт нужен для встраивания плагинов провайдеров в web- интерфейс продуктов «1C-Битрикс».

На текущий момент реализованы следующие методы:

  • list - отображает список всех провайдеров, для которых существуют подкаталоги в директории /opt/webdir/providers на машине:
    {
      "params": {
        "providers": {
          "superprovider": {
            "status": "enabled"
          },
          "amazon": {
            "error": 1,
            "message": "bxProvider::optionsProvider: Provider amazon not exist on the host"
          }
        }
      }
    }
    

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

    В случае если провайдеров нет на хосте, список будет пустым:

    {
      "params": {
        "providers": {
          
        }
      }
    }
    
  • status - покажет статус для провайдера:
    /opt/webdir/bin/bx-provider -a status --provider superprovider -o json
    {
      "params": {
        "provider_options": {
          "superprovider": {
            "options": {
              "order_status": 1,
              "order": 1,
              "help": 1,
              "configs": 1,
              "init": 0
            },
            "status": "enabled",
            "files": {
              "execute": "/opt/webdir/providers/superprovider/bin/superprovider",
              "holder": "/opt/webdir/providers/superprovider",
              "config": "/opt/webdir/providers/superprovider/etc/superprovider.conf"
            },
            "name": "superprovider",
            "config": "exists"
          }
        }
      }
    }
    

    В данном случае печатает внутреннюю информацию (используется как есть внутри обработчика), по сути, такой статус больше подходит для отладки работы провайдера, чем для использования в web-интерфейсе.

  • install и uninstall - создает/удаляет данные для провайдера (на текущий момент больше для отладки, возможно, в дальнейшем с помощью этих методов хостеры смогут установить свой плагин на сервер и удалить его):
    /opt/webdir/bin/bx-provider -a install --provider amazon --archive /tmp/amazon-v01.tar.gz
    
  • configs - отображает список всех конфигураций провайдера:
    /opt/webdir/bin/bx-provider -a configs --provider superprovider -o json
    {
      "params": {
        "provider_configs": {
          "superprovider": {
            "configurations": [
              {
                "id": "1",
                "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb"
              }
            ],
            "status": "enabled"
          }
        }
      }
    }
    
  • order - заказывает виртуальный сервер или VPS:
    /opt/webdir/bin/bx-provider -a order --provider superprovider --config_id 1 -o json
    {
      "params": {
        "provider_order": {
          "superprovider": {
            "task_id": "25"
          }
        }
      }
    }
    
  • order_status - отображает статус заказа:
    /opt/webdir/bin/bx-provider -a order_status --provider superprovider --task_id 25 -o json 
    {
      "params": {
        "provider_order": {
          "superprovider": {
            "server_password": "XXXXXXXXXXXXXXX",
            "status": "complete",
            "server": "xxx.xxx.xxx.xxx"
            "task_id": "25"
          }
        }
      }
    }
    
  • orders_list - список всех заказов, сделанных на хосте:
    /opt/webdir/bin/bx-provider -a orders_list --provider superprovider -o json
    {
      "params": {
        "provider_order_list": {
          "superprovider": {
            "25": {
              "status": "finished",
              "mtime": 1403445981,
              "error": 0,
              "message": ""
            },
            "22": {
              "status": "error",
              "mtime": 1403441000,
              "error": 1,
              "message": "cannot add ssh key to the server"
            },
            "21": {
              "status": "complete",
              "mtime": 1403440979,
              "error": 0,
              "message": ""
            },
            "23": {
              "status": "finished",
              "mtime": 1403441229,
              "error": 0,
              "message": ""
            }
          }
        }
      }
    }
    

    Тут добавлен еще один статус по задаче: complete - это значит, что сервер из данного задания был добавлен в пул.

  • order_to_host - запускает процедуру добавления сервера в пул с параметрами, переданными в статусе заказа:
    /opt/webdir/bin/bx-provider -a order_to_host --provider superprovider --task_id 25 -o json
    


Конфигурация и настройка web-кластера

Описание

Рассмотрим пул серверов из двух нод:

  • vm04 - основная нода ( на ней развернут пул )
  • vm03 - дополнительная нода ( на ней нет серверов )

Созданием веб-кластера, решаются следующие задачи:

  • Создание резервной копии.
  • Разделение веб-нагрузки на 2 ноды.

Через существующую реализацию кластера не решаются следующие задачи:

  • Горячая копия веб-сервера (вторая веб-нода) не будет полноценной заменой первой (без дополнительного вмешательства со стороны администратора сервера).
  • Возможность восстановления файлов, в случае их удаления. Синхронизация, в том числе и удаление, происходит достаточно быстро и удаление на любой ноде - приведет к удалению файла на всех.

В текущих настройках выделяются два типа веб-серверов:

  • Балансер: балансировщик, который проксирует запросы на все остальные ноды.
  • Веб: обработка php запросов.

Первый сервер в группе всегда - это роль балансера и веб. Все дополнительные сервера - это роль веб. В случае Виртуальной машины - роль балансера не может быть перенесена. Если ее нужно вынести на отдельный сервер, то читайте следующий урок.

Настройка web-ноды

Настройка web-ноды включает в себя следующие шаги:

  • Настройка синхрониазции файлов между нодами.
  • Конфигурация веб-служб для обработки запросов.

В BitrixVM представлено два сценария, которые настраивают веб-ноды:

  1. Настраивает web-ноду по шагам:
    • на первом шаге запускается сценарий по настройке синхронизации файлов,
    • на втором настраивает веб-сервисы.
    Шаги нужно разделить по времени если файлов много и перед запуском веб-сервисов хочется убедиться, что синхронизация выполнилась без ошибок.
  2. Настраивает все за "один" шаг. В один запуск сценария.

Синхронизация файлов/lsyncd

Синхронизация файлов делается через lsyncd.

Принцип работы:

  • intotify уведомляет приложение об изменениях в файловой системе;
  • lsyncd агрегирует изменения и запускает rsync/ssh для синхронизации;
  • синхронизация выполняется под пользователем bitrix.

Каталоги, которые синхронизируются (с сервера с ролью балансер на остальные сервера):

- /etc/nginx/bx/conf,
- /etc/nginx/bx/maps,
- /etc/nginx/bx/site_avaliable,
- /etc/nginx/bx/site_enabled,
- /etc/nginx/bx/site_cluster,
- /etc/nginx/bx/settings,
- /etc/httpd/bx/conf.

Между серверами с ролью веб - синхронизируются каталоги сайтов за исключением следующих подкаталогов:

- bitrix/cache
- bitrix/managed_cache
- bitrix/stack_cache
- upload/resize_cache.

Настройки lsyncd

Настройка включает в себя следующие шаги:

  1. Создание ssh ключей для пользователя bitrix. Это необходимо для работы rsync/ssh.
  2. Создание сервисов для синхронизации lsyncd-<HOSTNAME>, где HOSTNAME - это [dw]имя сервера[/dw][di]Уникальный идентификатор сервера в пуле.[/di] на который будут отправлены файлы в случае их изменения, создания или удаления.

    Например, если мы создаем web-ноду на сервере vm03, то на сервере vm04, будет создан сервис lsyncd-vm03; на сервере vm03 - lsyncd-vm04.

  3. Создание каталогов под временные файлы lsyncd. Это делается через сервис systemd-tmpfiles. Конфигурационный файл - /etc/tmpfiles.d/lsyncd.conf.
  4. Конфигурационные файлы lsyncd расположены по следующему пути /etc/lsyncd-<HOSTNAME>.conf.

    Основное различие между серверами: для сервера с ролью балансера (в примере vm04) файлы конфигурации будут содержать подкаталоги из /etc и каталоги сайтов. Для всех остальных дополнительных нод файлы конфигурации содержат только каталоги сайтов.

    Например, для конфигурации указанной выше. На сервере vm04 файл /etc/lsyncd-vm03.conf будет содержать следующие каталоги:

    sync {
      default.rsyncssh,
      host        = "vm03",
      source      = "/etc/nginx/bx/",
      targetdir   = "/etc/nginx/bx/",
      exclude   = {
        "site_enabled/http_balancer*.conf",
        "site_enabled/https_balancer*.conf",
        "site_enabled/upstream.conf",
        "site_enabled/pool_manager.conf",
        "site_ext_enabled/",
        "server_monitor.conf",
        "pool_passwords",
        }
    ....
    }
    
    -- httpd
    sync {
      default.rsyncssh,
      host        = "vm03",
      source      = "/etc/httpd/bx/conf/",
      targetdir   = "/etc/httpd/bx/conf/",
    }
    
    sync {
      default.rsyncssh,
      host        = "vm03",
      source      = "/home/bitrix/www/",
      targetdir   = "/home/bitrix/www/",
      exclude   = {
        "bitrix/cache/",
        "bitrix/managed_cache/",
        "bitrix/stack_cache/",
        "upload/resize_cache/",
        "*.log",
      },

    А конфигурационный файл на сервере vm03 /etc/lsyncd-vm04.conf будет содержать каталоги:

    sync {
      default.rsyncssh,
      host        = "vm04",
      source      = "/home/bitrix/www",
      targetdir   = "/home/bitrix/www",
      exclude   = {
        "bitrix/cache/",
        "bitrix/managed_cache/",
        "bitrix/stack_cache/",
        "upload/resize_cache/",
        "*.log",
        "bitrix/.settings.php",
        "php_interface/*.php",
    ...
    }

    Примечание: Если на сервере больше чем один сайт, то все они будут синхронизированы.

  5. Запуск сервиса и отслеживания статуса синхронизации. В сценарий включена проверка завершения синхронизации выбранных каталогов. Делается это через файл статуса для каждого запущенного сервиса: /var/log/lsyncd/daemon-<HOSTNAME>.status

Настройка и конфигурация web-служб

Выполните следующие шаги:

  1. Cоздайте логин для работы с базой. Работа с базой выполняется на удаленном сервере, поэтому требуется новый пользователь для работы с базой.
  2. Пропишите новые параметров в конфигурацию сайта. Меняются как настройки файлов, так и создаются записи в базу в модуль cluster.
  3. Создайте балансировщик на первой ноде пула (конфигурация NGINX сервиса). Балансирование нагрузки делается всегда на первой ноде в группе (в нашем примере vm04).

    Конфигурационные файлы: /etc/nginx/bx/site_enabled/http_balancer.conf и https_balancer_<SITENAME>.conf Настройки пула web-серверов содержаться в конфиге: /etc/nginx/bx/site_enabled/upstream.conf.

    Нагрузка распределяется по IP адресу клиента. В обычной ситуации клиент с одного и того же IPv4 адреса будет попадать на один и тот же web-сервер. Дополнительные конфиги для https_balancer* связаны с возможным существованием нескольких сайтов с разными сертификатами для одной конфигурации.
  4. Для Apache добавьте страницу статуса, которая позволяет из модуля cluster следить за статусом подключенного сервиса
  5. Выполните регистрацию нового веб-сервера в модуле Веб-кластер.

    Дополнительно на этом шаге в пуле за сервером закрепляется новая роль - web сервера.


Веб-кластер: конфигурация, бэкапы, восстановление

Описание

Рассмотрим несложную конфигурацию, где:

  • srv1 - главный web-сервер в пуле серверов. На нем настроен NGINX сервер в качестве балансера и есть Apache сервер который обрабатывает php-запросы.
  • srv2 - дополнительный сервер. На нем есть настроенный NGINX сервер с копией конфигов srv1. И есть Apache сервер, который обрабатывает php-запросы.

Примечание: На текущий момент конфигурации, которая позволяет вынести NGINX-балансер на отдельную ноду нет. Если таковая требуется можно взять за основу конфигурационные файлы NGINX сервера srv1. Но надо помнить, что официальной поддержки такой конфигурации в модуле Веб-кластер нет.

Между нодами настроена синхронизация файлов в обе стороны, используется lsyncd.

Для этого на каждой ноде поднят дополнительный сервис lsyncd-<имя_сервера>, где имя сервера - это идентификатор хоста в пуле Виртуальной машины с которым выполняется синхронизация. В нашем примере на сервере srv1, можно найти сервис lsyncd-srv2, который будет синхронизировать файлы с сервера srv1 на srv2. Синхронизация файлов выполняется по протоколу SSH+Rsync с авторизацией по ключу пользователем bitrix Виртуальной машины BitrixVM.

Логи сервиса можно найти в каталоге /var/log/lsyncd. Например, daemon-srv2.log - будет содержать лог синхронизации с серверов srv2, а daemon-srv2.status - текущий статус синхронизации. При этом основной сервер синхронизирует следующие каталоги:

/etc/httpd/bx/conf/
/etc/nginx/bx/
<каталог(и) сайта(ов)>

На дополнительных серверах, синхронизируются только каталоги для сайтов.

Из синхронизации на основном и дополнительных серверах исключены - подкаталоги содержащие кеш для сайтов, на дополнительных еще исключаются конфигурационные файлы:

"bitrix/cache/",
"bitrix/managed_cache/",
"bitrix/stack_cache/",
"upload/resize_cache/",
"*.log",
"bitrix/.settings.php",
"php_interface/*.php",

Какие есть возможности у такой конфигурации:

  • Масштабирование запросов, оба сервера могут обрабатывать запросы клиентов
  • "Бэкап" основного сервера. Тут важно понимать, что данная конфигурация не защищает от удаления данных, синхронизация через lsyncd выполняется достаточно быстро и удаление их на одной ноде, приведет к удалению на другой. Если нужен бэкап данных, настраиваем его стандартными способами. Архив лучше хранить не на тех же серверах, где происходит работа с файлами.

Теперь рассмотрим, что будет если одна из нод выйдет из строя.

Сломался дополнительный веб-сервер

Простой вариант - выходит из строя дополнительный web-сервер.

Есть большая вероятность, что вы этого можете просто не заметить этой поломки потому, что NGINX сервер помечает свои бэкенд-сервера как нерабочие только после нескольких ошибок. NGINX продолжает использовать те сервера, которые отвечают в обычном режиме. Чтобы не пропустить такой выход из строя - настройте внутренний мониторинг Виртуальной машины или любой другой мониторинг.

Если дополнительный сервер рабочий, но необходимо вывести его из эксплуатации, то используйте предусмотренный пункт в меню Виртуальной машины. Если такой возможности нет, то можно отключить вручную, убрав его из upstream серверов NGINX и выключив синхронизацию lsyncd конфигов.

Внимание! Если доступ к дополнительной ноде (srv2) есть у вас, но нет на мастер сервере, то выключите lsyncd сервис и на дополнительной ноде. Это нужно сделать до того как начнете чистить данные или работать с нодой вне пула.

По шагам на нашем примере:

  1. Отключить использование ноды на главном сервере /etc/nginx/bx/site_enabled/upstream.conf:
    upstream bx_cluster {
    ..
    server srv2:8080;
    }
  2. Удалить строку с неиспользуемым сервером.
    systemctl restart nginx
  3. Отключить синхронизацию файлов на дополнительной ноде:
    systemctl stop lsyncd-srv2
    systemctl disable lsyncd-srv2
  4. Отключить синхронизацию файлов:
    systemctl stop lsyncd-srv1
    systemctl disable lsyncd-srv1

Сломался основной сервер

Сложный вариант - выход из строя основного web-сервера. Его вы не пропустите скорее всего, но мониторинг тоже лучше настроить.

Ситуация тяжёлая, но не паникуйте: у вас есть все необходимые конфигурационные файлы на дополнительной ноде (не все включены в использование, но это легко поправить).

  1. Включите конфигурационные файлы балансера:
    ln -sf /etc/nginx/bx/site_avaliable/http* /etc/nginx/bx/site_enabled/
    ln -sf /etc/nginx/bx/site_avaliable/upstream.conf /etc/nginx/bx/site_enabled/
  2. Уберите основной сервер в upstream (/etc/nginx/bx/site_enabled/upstream.conf):
    upstream bx_cluster {
      ip_hash;
    
      server srv1:8080;
    ...
    
      keepalive 10;
    }
  3. Проверьте, что конфигурация рабочая и пеерезапустите NGINX:
    nginx -t
    systemctl restart nginx
  4. По умолчанию ваш сайт работает на ip-адресе сервера srv1. Самый простой вариант переключить DNS запись на адрес сервера srv2. Заранее нужно продумать это вариант, если время кеширования записи большое, то такое переключение может затянутся на часы или дни.

Как сделать образ BitrixVM для клонирования

В этой главе будет описано, как сделать образ виртуальной машины BitrixVM для клонирования.

Это пригодится специалистам, которые делают минимальную настройку виртуальной машины BitrixVM и потом клонируют ее, а полученный клон используют дальше для развертывания.

Рассмотрим установку часто используемых сервисов виртмашины:

  • push-server
  • memcached сервер

Существует 2 способа перенести виртуальную машину BitrixVM – ручное создание клона существующей машины с необходимыми сервисами и автоматическое развертывание готового образа (рекомендуемый).

Клонирование образа

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

  1. Для установки ПО нужно включить пул управления для машины
  2. Поставить необходимое ПО через меню или с помощью скриптов
  3. Удалить настройки пула
  4. Дополнительные очистки системы и ssh-ключей
  5. Сделать образ машины

1. Включение пула управления на машине

Данный шаг необходим, чтобы получить доступ к настройкам сервера, установки push-server и memcached.

Если на чистом сервере в меню выбрать пункт 1. Create Management pool of server, то он как раз проведет по необходимым настройкам.

Либо можно выполнить следующую команду:

/opt/webdir/bin/wrapper_ansible_conf -a create -H SERVER_NAME -I NET_INTERFACE
где:
-H SERVER_NAME – это имя сервера, которое будет использовано в настройках.
-I NET_INTERFACE – это сетевой интерфейс, чей IP-адрес будет использован в настройках пула.

Данная команда вернет ID задания, завершения которого нужно дождаться, чтобы продолжить дальше:

message
...
Run configuration pool job task_id=common_7874274840
All operations complete

Дождаться завершения можно, отслеживая состояние лог-файла:

tailf /opt/webdir/temp/common_7874274840/status
...
srv1                       : ok=75   changed=30   unreachable=0    failed=0

Если в полях unreachable и failed будут нулевые значения, значит все хорошо и можно продолжать.


2.1. Установка push-server

Установить push-server можно через меню или с помощью команды:

/opt/webdir/bin/bx-sites -a push_configure_nodejs -H  SERVER_NAME

Дожидаемся завершения задания.

info:bxDaemon:pushserver_2042054462:7097:1594650283::running:::

По умолчанию сценарий виртуальной машины настроит сервис на использование на рабочем IP-адресе, чтобы в случае подключения других машины в пул они могли использовать его.

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

Для этого в файле /etc/sysconfig/push-server-multi меняем параметр на:

WS_HOST=127.0.0.1

И пересоздаем конфиги push-server:

systemctl stop push-server

/etc/init.d/push-server-multi reset

Nginx проксирует запросы на push-server на основание имени хоста. Чтобы он правильно определил, куда и как проксировать, меняем запись в /etc/hosts:

127.0.0.1 SERVER_NAME

2.2. Установка memcached сервера

Устанавливаем memcached сервер:

/opt/webdir/bin/bx-mc -a create -s SERVER_NAME

Тут про адрес при копировании можно не задумываться, т.к. сервис слушает все и доступ ограничивается настройками iptables/firewalld.


3. Удаление настроек пула

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

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

Для этого нужно удалить файлы и каталоги конфигурации для ansible:

rm -rf /etc/ansible/{host_vars,group_vars,hosts,ansible-roles}

Или выполнить команду ansible:

/opt/webdir/bin/wrapper_ansible_conf -a delete_pool

4. Дополнительные очистки

Удаляем правила Udev для интерфейсов:

/bin/rm -f /etc/udev/rules.d/70*

Очищаем записи MAC-адресов и UUID устройств:

/bin/sed -i ‘/^(HWADDR|UUID)=/d’ /etc/sysconfig/network-scripts/ifcfg-eth0

Удаляем ssh-ключи. При старте новая машина создаст для себя новые ключи:

/bin/rm –f /etc/ssh/*key*

Очищаем логи сценариев:

/bin/rm -fr /opt/webdir/temp/*
/bin/rm -fr /opt/webdir/logs/*

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

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


Автоматическая настройка готового образа виртуальной машины (рекомендуется)

Можно настраивать чистый образ автоматически. Для этого просто добавьте приведенные выше команды в свой сценарий или bash-скрипт:

# создание пула
/opt/webdir/bin/wrapper_ansible_conf -a create -H SERVER_NAME -I NET_INTERFACE

# настройка пуш-сервера
/opt/webdir/bin/bx-sites -a push_configure_nodejs -H  SERVER_NAME

# настройка memcached сервиса
/opt/webdir/bin/bx-mc -a create -s SERVER_NAME

Вы получаете работоспособную установку без необходимости решать проблемы смены адреса при копировании шаблона.

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



Из чего состоит BitrixVM

В этом разделе рассматривается более углубленное описание виртуальной машины BitrixVM.



Введение

Что нужно для работы Bitrix-сайта?

Для работы «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке» необходимо:

  • Сервер – виртуальный или железный, количество серверов и их мощность зависит от потребностей.

  • Web-службы – в BitrixVM используется схема из двух сервисов frontend-backend:

    • frontendnginx. К нему обращается браузер и через него отдается статика (js/css/картинки и т.п.), а также используется для организации различных пользовательских сценариев – отдача файлов из облака (X-Accel-Redirect), работа с сервером мгновенных сообщений (push-server) и многое другое.
    • backendapache/httpd. Служба обрабатывает весь динамический контент.
  • База данных – в BitrixVM используется Percona Server for MySQL версии 5.6 и 5.7.

  • Кеширование данных – в BitrixVM для организации быстрого хранилища в памяти используются Memcached и Redis.

  • Cервис обмена мгновенными сообщениями – в BitrixVM используются модуль nginx-push-stream-module или сервер на NodeJS.



Варианты поставки BitrixVM

«1C-Битрикс: Виртуальная машина» поставляется в 2 вариантах:

  1. «1С-Битрикс: Веб-окружение» - Linux (BitrixEnv)

    Это специальный скрипт bitrix-env.sh для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформах CentOS 6 (i386, x86_64) и CentOS 7 (x86_64).

    Установка производится на железный или виртуальный сервер несколькими командами. Подробнее про установку можно прочитать в уроке Установка «1С-Битрикс: Веб-окружение» - Linux (BitrixEnv).

  2. Готовые образы «1C-Битрикс: Виртуальная машина» VMBitrix.

    «1C-Битрикс: Виртуальная машина» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести уже готовые проекты.

    • Образы VMBitrix доступны для гипервизоров: VMWare, Sphere, VirtualBox и HyperV.

      Скачать их можно на странице загрузки.

    • Предконфигурированные образы BitrixVM (AMI-образы) для быстрого запуска приложений «1С-Битрикс» в Amazon EC2.

      Список AMI-образов для различных регионов Amazon EC2 можно взять в специальном разделе.

Оба варианта очень похожи – готовые образы «1C-Битрикс: Виртуальная машина» VMBitrix собираются на основе того же скрипта bitrix-env.sh, только в каждый образ включаются дополнительные драйверы для работы со своим гипервизором и скрипты для сервиса Amazon EC2.

Пакеты bitrix-env.sh обновляются чаще, чем образы BitrixVM. Поэтому при первом запуске образа, желательно запустить обновление BitrixVM через меню.



Репозиторий Bitrix

Для установки bitrix-env используется операционная система CentOS версий 6 или 7. Выбор в пользу CentOS был сделан из-за распространенности данной ОС, большого сообщества, а также из-за опыта использования в рамках инфраструктуры Битрикс24.

Репозиторий – это файловое хранилище, организованное определенным образом. В нем хранятся пакеты программ, доступных для дальнейшего распространения.

Пакеты виртуальной машины BitrixVM содержатся в специальном yum-репозитории Bitrix, расположенном в CloudFront (AmazonCDN).

Репозиторий Bitrix содержит пакеты:

  • bitrix-env и bitrix-env-crm – основная виртуальная машина, содержит необходимые сервисы, конфигурационные файлы, сценарии ansible и скрипты.

    Пакет bitrix-env – полная виртуальная машина BitrixVM, подходит под любую установку продуктов «1С-Битрикс». Скачиваются пакеты необходимых сервисов, создаются настройки сервера в зависимости от кофигурации оборудования, создается директория сайта по умолчанию /home/bitrix/www/ с необходимыми скриптами и кофигурационными файлами для выбора установки продуктов «1С-Битрикс».

    Пакет bitrix-env-crm – частный случай bitrix-env, разработан для редакции Битрикс24.СRM. Скачиваются пакеты необходимых сервисов, создаются настройки сервера в зависимости от кофигурации оборудования, запускается Push-сервис, устанавливается редакция коробочной версии Битрикс24.СRM в /home/bitrix/www/.

  • push-server – Node.js сервис для работы push && pull модуля в продуктах «1С-Битрикс». Данный сервис обеспечивает обмен мгновенными сообщениями.
  • bx-nginx – собранный из исходников nginx (stable) без патчей, но с добавлением ряда модулей, которые нужны для работы окружения и продуктов «1С-Битрикс». Например, модуль mod_zip, который позволяет отдавать файлы архивом на стороне nginx сервера.
  • bx-ansible – собранный из исходников ansible без патчей, но зафиксированная версия – чтобы обновления от RedHat не ломали работу виртуальной машины из-за частой несовместимости версий ansible между собой.

Дополнительные репозитории, используемые для BitrixVM:

  • REMI – используется для пакетов php 7.x.
  • Epel – для зависимостей пакетов из REMI-репозитория.
  • Percona – пакеты percona-server 5.7, percona-toolkit.
  • NodeJS – пакет nodejs.


Состав пакетов BitrixVM

В составе bitrix-env используются стандартные пакеты из репозиториев, но с дополнительными настройками.



bx-nginx

В пакет bx-nginx, помимо самого nginx (stable), входят дополнительные модули:

  • Модуль push-stream-module – это модуль мгновенных сообщений, не является обязательным, т.к на текущий момент мы рекомендуем использовать NodeJS push-server. Хотя небольшие проекты, где нет большой нагрузки на количество отсылаемых мгновенных сообщений, могут использовать именно его, он менее требователен к мощности сервера. А также оставлен для совместимости с предыдущими версиями BitrixVM.
  • Модули mod-zip и headers-more используются в паре для быстрой отдачи архива файлов средствами nginx-сервера.
  • Модуль pagespeed – позволяет оптимизировать сервер для высокой скорости отдачи контента без каких-либо изменений содержимого контента. Есть в сборке bx-nginx, но не используется в BitrixVM. Включен был по просьбам клиентов, настройка через меню BitrixVM не планируется, т.к в продуктах 1С-Битрикс используется технология Композит.
  • Модуль brotli – модуль для поддержки нового стандарта компрессии данных, разработанный Google. Входит в сборку bx-nginx без настроек, конфигурация под него планируется в следующих версиях BitrixVM.

При установке bitrix-env создаются для nginx:

  • настройки подключенных модулей bx-nginx (кроме модуля pagespeed).

  • настройки отдачи через nginx файлов в облачных хранилищах Яндекс, Google, Cloudflare и др.

    В настройках главного модуля в продуктах 1С-Битрикс есть опция Быстрая отдача файлов через Nginx, при активации которой c помощью заголовка X-Accel-Redirect формируется специальная ссылка. Эта ссылка обрабатывается сервером nginx, а он уже проксирует запрос в подключенное хранилище и отдает запрошенный файл клиенту. Таким образом, освобождаются ресурсы backend-службы, которая обрабатывает php-запросы, а сама отдача файла выполняется обычно быстрее.

  • настройки различных правил для Bitrix-сайта, в том числе блокировки доступа к ресурсам. Статика отдается nginx, динамика уходит на Apache.

Также есть варианты дополнительных настроек из сценариев через меню виртуальной машины:

  • установка ssl-сертификатов Let's Encrypt,
  • создание новых сайтов (в самом начале есть только один).
  • работа только через https и др.


Apache/PHP

В качестве backend-а используется Apache – стандартный пакет, актуальная версия из EPEL-репозитория.

PHP – стандартные пакеты из REMI-репозитория. Виртуальная машина BitrixVM поддерживает возможность переключения версий PHP: 5.6 – 7.0 – 7.1 – 7.2 – 7.3 – 7.4 – 8.0 и обратно. Опция переключения на PHP 8.0 пока экспериментальная, полной поддержки ее в продуктах «1С-Битрикс» пока нет.


При установке bitrix-env создаются для Apache конфигурации:

  • для сайтов и сервиса с необходимыми для работы сайта модулями.
  • под существующий сервер, зависящие от количества оперативной памяти сервера и типа виртуализации – эти настройки применяются при загрузке сервера и подстраиваются под конкретное окружение.
  • для дополнительных php-модулей.

Варианты донастройки из сценариев меню виртуальной машины:

  • включение и выключение нужных для работы PHP- модулей.
  • включение NTLM авторизации через модуль Apache.
  • переключение версий PHP с 5.6 до 8.0 и обратно.
  • создание нескольких backend серверов для распараллеливания нагрузки.


MySQL Percona Server

В виртуальной машине BitrixVM в качестве MySQL используется стандартный пакет Percona Server. Не запрещено устанавливать другие варианты. Официальная поддержка версии MySQL 8.0 есть.


При установке bitrix-env создаются для mysqld конфигурации:

  • статическая и динамическая настройка параметров в зависимости от конфигурации сервера в момент запуска

Варианты донастройки из сценариев меню виртуальной машины:

  • создание и удаление реплик.
  • перенос мастера на другой хост.
  • обновление MySQL с версии на версию.


Ansible

Почему был выбран Ansible для управления?

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

Ansible легок в настройке, все, что нужно для его работы – это ssh-доступ к серверу. Также имеется простая точка входа, как в плане конфигурации – сценарии (ini-, yml- и json-форматы), шаблоны (jinja2), так и в написании плагинов на достаточном количестве языков (bash и др). Имеет понятную документацию и крупное сообщество с большой базой примеров.

В виртуальной машине BitrixVM сделано следующем образом: в меню виртуальной машины можно выбрать, что хотите сделать (настроить ssl-сертификат, создать сайт, включить cron-задания для сайта и т.п), затем из интерфейса стартует задача (task) на изменение через API – это и есть ansible-сценарий со всеми необходимыми опциями.

Примечание: Подробную документация по Ansible можно найти на официальном сайте.



Интерфейсы управления

Есть два варианта работы с виртуальной машиной BitrixVM - получение текущего статуса и запрос на изменение.

Web-интерфейс

Через web-интерфейс в административной части продуктов «1С-Битрикс»: Настройки > Управление масштабированием > Панель управления:

Нажмите на рисунок, чтобы увеличить

Данный вариант управления масштабированием сервера в основном направлен на управление ролями одного или нескольких серверов, входящих в пул для отказоустойчивой системы в условиях возрастающей нагрузки. Урезан по функционалу, по сравнению со вторым вариантом.

Примечание: Подробную документация по модулю Масштабирование можно найти в курсе Администратор. Базовый.



Консольное меню

Через интерфейс консольного меню командной строки.

Наиболее полный и рекомендуемый интерфейс управления виртуальной машиной BitrixVM. Все новинки функционала отражаются именно в этом варианте.

Примечание: Документация по виртуальной машине BitrixVM можно найти в одноименном курсе.



Инвентарь Ansible


Все конфигурационные файлы, сценарии и прочее для работы ansible хранятся в директории /etc/ansible/.

Самое главное – это описание хостов, которыми управляет виртуальная машина. В самом простом случае – это локальный сервер, на котором установлено Bitrix-окружение.


В инвентарь входят:

  • файл /etc/ansible/hosts – или файл инвентаря (описание конфигурации), содержит описание хостов, которыми можно управлять.

    В случае виртуальной машины BitrixVM мы храним только группы и хосты, которые входят в эти группы.

    Внутри файла /etc/ansible/hosts есть разделение по группам. Группам соответствуют роли, которые выполняют серверы. Один и тот же сервер может находится в нескольких группах.

    Пример:

    # Bitrix VM default configuration group
    [bitrix-hosts]
    vm03 ansible_ssh_host=192.168.1.215
    vm04 ansible_connection=local ansible_ssh_host=192.168.1.227
    
    ..
    [bitrix-push]
    vm03 ansible_ssh_host=192.168.1.215
    

    Группа [bitrix-hosts] содержит все хосты, которыми можно управлять.

    Группа [bitrix-push] содержит хосты, которые выполняют роль push-сервера. В данном примере: сервер vm03 выполняет роль сервера мгновенных сообщений.

    Внимание! Не добавляйте один и тот же хост через разные интерфейсы в инвентарь!

  • файлы в каталогах /etc/ansible/host_vars/ и /etc/ansible/group_vars/ – персональные настройки серверов и групп соответственно.

    Пример:

    bx_connect: ipv4
    bx_host: vm04
    bx_hostname: vm04
    bx_netaddr: 192.168.1.227
    


Сценарии, роли, API

Сценарии и роли

Cервер настраивается с помощью сценариев.

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

Роль – это способ организации хранения сценариев. Позволяет хранить все необходимые файлы в отдельном каталоге.

Основные роли:

  • monitor – настройка сервера мониторинга;
  • web – настройка веб-серверов: организация нескольких нод, создание нового сайта, конфигурация сертификата;
  • mysql – конфигурация mysql-серверов: создание master-slave конфигурации, переезд mysql-сервера на отдельный хост;
  • sphinx – настройка и удаления сервиса sphinx;
  • memcached – настройка и удаления сервиса memcached;
  • push-server – настройка и удаления сервиса push-server.

Дополнительные роли:

  • common – общая конфигурация серверов: межсетевой экран, синхронизация времени, установка дополнительного ПО;
  • clean – очистка кеша.


API ansible-сценариев

API ansible-сценариев используется для запуска сценариев, получения их статуса и возврата его в удобном формате (json, txt).

Сценарии запускаются через API в фоновом режиме, чтобы любая текущея веб-сессия или ssh-сессия не влияла на процесс настройки. Также при этом сохраняется статус запущенного задания, а в случае ошибки есть возможность получить ее лог.



Запуск сценария ansible

Запускается сценарий командой:

ansible-playbook /etc/ansible/<PLAY>.yml -e ansible_playbook_file=/opt/webdir/temp/<TASK_ID>/opts.yml

Команда ansible-playbook запускает yml-сценарий, а дополнительные опции собираются из меню и передаются через файл opts.yml в параметре ansible_playbook_file.

Перед запуском ansible-сценария API создает директорию задания /opt/webdir/temp/<TASK_ID> и затем в нее помещаются файлы:

  • opts.yml – опции запуска (если они есть).
  • status – после запуска будет содержать лог запуска
  • pid – PID фонового процесса, таким образом, можно узнать выполняется процесс или нет.

После отработки успешного или неуспешного задания файл opts.yml удаляется, т.к он может содержать конфиденциальные данные (например, пароли).

Просмотреть статусы задач можно с помощью пункта меню виртуальной машины 10. Background pool tasks:



Конфигурации служб

В главе описаны планы конфигурации служб виртуальной машины BitrixVM.



Конфигурация nginx

Конфигурация

Конфигурация nginx в виртуальной машине:

Нажмите на рисунок, чтобы увеличить

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

  • /etc/nginx/nginx.conf – основной конфигурационный файл nginx (заменяется при обновлении).
  • /etc/nginx/bx/ – основной каталог для хранения конфигурационных файлов виртуальной машины.
  • /etc/nginx/bx/conf/ – каталог с общими конфигурационными файлами, чаще всего подключенных непосредственно в конфиг сайта.
    • bitrix.conf – для сайтов, у которых не включен композит (меняется при обновлении).
    • bitrix_general.conf – используется для любого сайта (меняется при обновлении).
    • ssl.conf – настройки сертификата по умолчанию (меняется при обновлении).
  • /etc/nginx/bx/maps/ – каталог хранения общих и персональных переменных сайта, представленные в виде карт nginx.
  • /etc/nginx/bx/settings/ – каталог с персональными конфигами под сайт. По умолчанию (если установлено соответствующее обновление) будет содержать настройки для хранения временных файлов сайта (BX_TEMPORARY_FILES_DIRECTORY) и отдачи этих файлов через nginx.
  • /etc/nginx/bx/site_available/ – каталог с существующими сайтами (или виртуальными хостами).
    • s1.conf и ssl.s1.conf – конфиги сайта по умолчанию для http и https соответственно.
    • bx_ext_<SITE_NAME>.conf и >bx_ext_ssl_<SITE_NAME>.conf – конфиги сайтов для http и https соответственно.
  • /etc/nginx/bx/site_enabled/ – каталог с подключенными сайтами (в большинстве случаев, симлинки на site_available).
  • /etc/nginx/bx/site_ext_enabled/ – каталог с конфигами сайтов, не связанных с Bitrix-окружением.


Персональные настройки

Все изменения стандартных конфигурационных файлов nginx могут быть утрачены во время обновления или изменения настроек виртуальной машины BitrixVM. Поэтому, чтобы этого не произошло, для персональных настроек есть свои файлы и места их хранения.

Изменить глобальные настройки nginx всего сервера – в файле /etc/nginx/bx/settings/z_bx_custom.conf, а также в /etc/nginx/bx/site_ext_enabled/.

Персональные настройки конкретного сайта – в директории /etc/nginx/bx/site_settings/<SITE_NAME>/ (начиная с версии BitrixVM 7.5 или бета версии 7.4.10).



Конфигурация apache/httpd

Конфигурация

Конфигурация Apache в виртуальной машине:

Нажмите на рисунок, чтобы увеличить

Настройки для сайтов хранятся в файлах:

  • /etc/httpd/conf/httpd.conf – основной конфигурационный файл apache (заменяется при обновлении).
  • /etc/httpd/bx/conf/ – каталог с настройками существующих сайтов.
    • default.conf – конфиг сайта по умолчанию.
    • bx_ext_<SITE_NAME>.conf – конфиг дополнительных сайтов.
  • /etc/httpd/bx/custom/ – каталог для персональных настроек.
  • php.conf – конфиг php.
  • prefork.conf – зависит от типа сервера и количества установленной памяти на нем (меняется при запуске ОС).


Персональные настройки

Все изменения стандартных конфигурационных файлов apache могут быть утрачены во время обновления или изменения настроек виртуальной машины BitrixVM. Поэтому, чтобы этого не произошло, для персональных настроек есть свои файлы и места их хранения.

Изменить глобальные настройки apache всего сервера – в файлах /etc/httpd/bx/custom/*.conf.



Конфигурация mysql

Конфигурация

Конфигурация MySQL в виртуальной машине:

Настройки для сайтов хранятся в файлах:

  • /etc/my.cnf – основной конфигурационный файл MySQL (заменяется при обновлении).
  • /etc/mysql/conf.d/ – каталог с подключаемыми конфигурационными файлами.
    • bvat.cnf – параметры, зависящие от типа сервера и объема оперативной памяти сервера.
    • z_bx_custom.cnf – персональные настройки mysql.

Внимание! Для работы виртуальной машины BitrixVM используется клиентский файл $HOME/.my.cnf. Удалять его не рекомендуется, т.к в этом файле содержатся данные для подключения к базе данных под root-пользователем.



Персональные настройки

Все изменения стандартных конфигурационных файлов mysql могут быть утрачены во время обновления или изменения настроек виртуальной машины BitrixVM. Поэтому, чтобы этого не произошло, для персональных настроек есть свои файлы и места их хранения.

Изменить глобальные настройки mysql всего сервера – в файле /etc/mysql/conf.d/z_bx_custom.cnf.



Сценарии BitrixVM

Пул

Пул – это группа серверов, которой можно управлять посредством ansible-сценариев. По сути пул – это все сервера в группе bitrix-hosts в ansible-инвентаре.

В самом простом случае в пуле будет единственный сервер, на котором настроено Bitrix-окружение.

Примечание: Первый сервер – это всегда сервер управления, т.е при подключении дополнительных серверов в пул, именно первый сервер будет управлять всеми остальными. На текущий момент времени роль управления перенести нельзя.



Создание и удаление пула

Создание пула

После установки bitrix-env рекомендуется настроить пул:

  • для настройки правил межсетевого экрана.
  • для управления локальными службами и конфигурацией через существующее меню или web-интерфейс: настройка сертификатов, создание дополнительных сайтов, обновление mysql сервера и т.п.
  • для настройки дополнительных служб (sphinx, memcached, push-server).
  • для включения мониторинга и многое другое.

Без создания пула вы не сможете осуществлять управление сайтами и серверами через меню, будут доступны только сетевые настройки локального хоста (настройка имени и IP-адреса, обновление сервера).


При создании пула:

  1. Создаются файлы инвентаря для ansible с данными текущего сервера.
  2. Создается ssh-ключ сервера.
  3. Запускается роль common для дополнительной настройки сервера.

Обратите внимание:
  • имя сетевого интерфейса – если их больше одного, то лучше использовать внутреннюю сеть, особенно, если планируется подключать дополнительные сервера. Желательно, чтобы адрес не был динамическим. Сменить интерфейс после создания пула нельзя без пересоздания пула.
  • имя сервера – имя сервера должно быть уникальным в рамках пула/инвентаря.
  • нельзя добавлять один и тот же сервер в один пул несколькими способами (через разные IP-адреса сервера с использованием разных имен) – это может разрушить данные этого сервера.



Удаление пула

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

Особенности удаления пула:

  • удаляется конфигурация ansible: файлы инвентаря, ssh-ключ доступа.
  • не влияет на конфигурацию веб-серверов и других запущенных служб.
  • может быть выполнена, только в случае если сервер один в пуле.



Добавление и удаление сервера в пуле

Добавление сервера в пул

Для подключения сервера в пул нужно знать следующие данные:

  • IP-адрес или DNS-имя.
  • уникальное имя сервера в пуле – это может быть его DNS-имя, но не IP-адрес!
  • Пароль для входа root-пользователя – пароль нужен только для первого входа, в дальнейшем используется авторизация по ssh-ключу.

Подключение разбито на два этапа:

  1. Копирование ssh-ключа на сервер.
  2. Запуск роли common для него.

Удаление сервера из пула

Если дополнительный сервер больше не нужен, его можно удалить из пула.

При удалении сервера из пула происходит:

  • удаление настроек на самом сервере (фаерволл, ssh-ключ доступа).
  • удаление конфигурации сервера на управляющем хосте (инвентарь ansible).
  • удаление правил доступа на всех оставшихся серверах группы (iptables).

Примечание: Если удаляемый сервер имеет какую-либо роль, то перед удалением необходимо сначала снять с него роль.



Сайты

API absible-сценариев умеет собирать всю основные данные по сайтам: список всех сайтов, которые установлены на сервере, определяет типа сайта, настройки базы данных, DOCUMENT_ROOT, настройки для email, cron и бэкапов, композит и т.п.

Список действий

Список действий, проводимых над сайтами из меню виртуальной машины:



Структура хранения файлов

Структура хранения кофигурационных файлов Bitrix-сайтов:

Файлы DOCUMENT_ROOT:

  • /bitrix/.settings.php – настройки bitrix-сайта в ядре D7.
  • /bitrix/php_interface/dbconn.php – настройки bitrix-сайта в старом ядре.

Файлы apache в /etc/httpd/bx/conf/:

  • default.conf – конфиг сайта по умолчанию.
  • bx_ext_<SITE_NAME>.conf – конфиг остальных сайтов.

Файлы nginx в /etc/nginx/bx/site_enabled/:

  • s1.conf и ssl.s1.conf – конфиги сайта по умолчанию для http и https соответственно.
  • >bx_ext_<SITE_NAME>.conf и >bx_ext_ssl_<SITE_NAME>.conf – конфиги сайтов для http и https соответственно.

Файлы crontab:

  • /etc/cron.d/bx_<DBNAME>


Дополнительно

И дополнительно используются еще настройки сервера и базы данных.

Нажмите на рисунок, чтобы увеличить



Типы сайтов

Типы установки ядра «1С-Битрикс»:

  • kernel – отдельное ядро продукта «1С-Битрикс» в новой директории сайта. Содержит в себе базу данных, файлы сайта, конфиги веб-служб.

  • ext_kernel – отдельное ядро продукта «1С-Битрикс» в новой директории сайта для создания линков на это ядро в рамках многосайтовости. Ядро будет недоступно напрямую, а только через дополнительные сайты (работает в паре с сайтами типа link). Содержит в себе базу данных, файлы сайта.

  • link – в случае создания дополнительного сайта в рамках многосайтовости. Общее ядро и данные в общей базе с уже установленным продуктом «1С-Битрикс» (работает в паре с ядром ext_kernel или kernel). Содержит в себе файлы (но не все) и конфиги веб-служб. Подкаталоги bitrix, upload имеют ссылки на ext_kernel или kernel.



Создание и удаление сайтов

Создание сайта

Для создания сайта используются данные

  • Имя сайта.
  • Тип сайта (kernel, ext_kernel или link).
  • Кодировка сайта.
  • Выполнение агентов на cron или нет.
  • Дополнительные опции подключения к MySQL (база, логин, пароль) и DOCUMENT_ROOT для сайта.


Что происходит внутри Bitrix-окружения при создании сайта:

  • создание каталогов необходимых для работы сайта.
  • создание базы данных и логина с паролем для подключения к ней.
  • создание записей в cron.
  • создание конфигурационных файлов apache, nginx.

Запуск создания сайта через API:

/opt/webdir/bin/bx-sites -a create -s  -t kernel

Ansible-playbook:

ansible-playbook /etc/ansible/web.yml -e ansible_playbook_file=/opt/webdir/temp/<TASK_ID>/opts.yml


Удаление сайта

Для удаления сайта нужно только указать каталог удаляемого сайта.


Что происходит внутри Bitrix-окружения при удалении сайта:

  • удаление каталогов сайта.
  • удаление базы данных и доступов для подключения к ней.
  • очистка записей в cron.
  • удаление конфигурационных файлов apache, nginx.

Запуск удаления сайта через API:

/opt/webdir/bin/bx-sites -a delete -r /path/to/doc/root

Ansible-playbook:

ansible-playbook /etc/ansible/web.yml -e ansible_playbook_file=/opt/webdir/temp/<TASK_ID>/opts.yml


Архив

Виртуальная машина BitrixVM v5.x (архив)

Внимание! BitrixVM версии 5.x устарела и не поддерживается. Актуальная версия BitrixVM - 7.х, информацию о которой можно найти здесь.

«1C-Битрикс: Виртуальная машина» - бесплатный программный продукт, готовый к немедленному использованию виртуальный сервер, полностью настроенный, протестированный и адаптированный для оптимальной работы как с продуктами «1С-Битрикс», так и с любыми PHP-приложениями.

Виртуальная машина сэкономит время и силы на правильное развертывание и администрирование сайта или внутреннего информационного ресурса на базе продуктов «1С-Битрикс».

С помощью специальных ВМ-решений вы можете быстро получить оптимально сконфигурированный сервер, не уступающий по производительности BitrixVM, а по масштабируемости - превосходящий виртуальную машину «1С-Битрикс». Пакеты подготовлены специалистами «1С-Битрикс» и доступны для скачивания и использования.

Решения для оптимизации установки продуктов «1С-Битрикс»:

  1. «1C-Битрикс: Виртуальная машина 5.x»

    «1C-Битрикс: Виртуальная машина 5.x» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести свои, уже готовые проекты.

    Дистрибутивы BitrixVM доступны для:

    • VMWare;
    • VirtualBox;
    • HyperV.

  2. «1С-Битрикс: Веб-окружение» - Linux

    «1С-Битрикс»: Веб-окружение» - Linux служит для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформах Fedora 12-15 (i386, x86_64), CentOS 5/6 (i386, x86_64), Red Hat Enterprise Linux 5/6 (i386, x86_64).

  3. Virtuozzo Application Template для запуска оптимизированного VPS «Битрикс»

    Пакет Virtuozzo VZ Application Template для «Битрикс» с использованием решения «1С-Битрикс: Веб-окружение» - Linux 2.0. Шаблон предназначен для установки (создания) Virtuozzo контейнеров на основе Fedora 8-12 32-bit и CentOS 5 32-bit / x86_64 packaged as a Virtuozzo EZ Template.

  4. Amazon Elastic Compute Cloud (Amazon EC2)

    Amazon EC2 - это веб-сервис, предоставляющий масштабируемые вычислительные мощности и созданный для быстрого и простого разворачивания веб-приложений на площадках (в облаках) Amazon. Специалистами «1С-Битрикс» подготовлены предконфигурированные образы BitrixVM (AMI-образы) для быстрого запуска приложений «1С-Битрикс» в Amazon EC2, которые включают:

    • CentOS 6.7;
    • NGINX + Apache2;
    • PHP 5.6+;
    • MySQL5 with InnoDB support;
    • Mail server agent;
    • UNIX-like Control Menu with common tasks;
    • IP address via DHCP, or configured by Amazon Elastic IP;
    • HTTPS support.

    Список ami-образов по регионам можно посмотреть на странице BitrixVM.

Внимание!«1C-Битрикс: Виртуальная машина» версии 5.x также позволяет управлять масштабированием серверов пула в простом визуальном режиме в административном интерфейсе с помощью модуля Управление масштабированием.



Глава предназначена для администраторов и пользователей продуктов «1С-Битрикс», устанавливающих для ознакомления либо переносящих готовые проекты на виртуальную машину BitrixVM. Аналогичным способом можно переносить проекты с удаленного сайта на виртуальную машину, между виртуальными машинами и т.д. В документе рассматриваются процедуры установки всех необходимых приложений для работы продукта на виртуальной машине BitrixVM.

Описание установки ПО виртуализации не входит в данное руководство. По всем вопросам установки этой программы обращайтесь к документации соответствующего ПО.

Если у вас возникнут вопросы по процессу установки продуктов компании «1С-Битрикс», вы можете обратиться в службу Технической поддержки. Обсуждение работы BitrixVM доступно на специализированном форуме или в группе Виртуальные машины Битрикс социальной сети компании «1С-Битрикс».


Внимание! Информацию по «1C-Битрикс: Виртуальная машина» версии 4.3 можно прочитать здесь.

Внимание! Все названия хостов, адреса e-mail, серверов, ip-адреса и т.п информация в учебном курсе указываются в качестве примера. Поэтому при настройке виртуальной машины необходимо использовать свои данные.

Внимание! Если на BitrixVM или в «1С-Битрикс: Веб-окружение» - Linux меняется ssl сертификат с установленного по умолчанию на свой, и сертификат запаролен, то это вызовет проблему в работе мастеров и при перезапуске сервисов. Будет постоянно запрашиваться ввод пароля. Чтобы избежать подобных проблем можно удалить пароль из сертификата: /path/to/openssl rsa -in /path/to/originalkeywithpass.key -out /path/to/newkeywithnopass.key.


Установка «1С-Битрикс: Веб-окружение» - Linux 5.x

«1С-Битрикс: Веб-окружение» - Linux будет полезно:

  • Для пользователей и разработчиков, которые использовали продукт «1С-Битрикс: Виртуальная машина» в процессе подготовки сайта и столкнулись с проблемой переноса конфигурации на хостинг или на невиртуальное оборудование и потерей производительности.
  • Для специалистов хостинг-партнеров, планирующих создать шаблоны различных VPS для продуктов «1С-Битрикс».
  • Для системных администраторов, которым требуется быстро подготовить производительную платформу для установки или миграции сайтов на основе «1С-Битрикс».
  • Для программистов и системных администраторов, которым требуется быстро развернуть кластер для проектов на основе «1С-Битрикс».

«1С-Битрикс: Веб-окружение» - Linux позволяет быстро и с минимальными затратами развернуть оптимальное окружение для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS 5/6 (i386, x86_64):

  • mysql-server 5.*
  • web-server (Apache 2.2.*)
  • php 5.6.*
  • nginx 1.6.2
  • memcached
  • stunnel
  • catdoc
  • xpdf
  • munin
  • nagios
  • sphinx


Рассмотрим установку «1С-Битрикс: Веб-окружение» - Linux на оборудовании с уже установленной CentOS 6 (i386, x86_64).

  • Авторизуемся на сервер под административным аккаунтом.
  • Загружаем скрипт «1С-Битрикс: Веб-окружение» - Linux и запускаем его командами:
    wget http://repo.bitrix.info/yum/bitrix-env.sh   
    chmod +x bitrix-env.sh  
    ./bitrix-env.sh
    

    Примечание: Если на сервере нет утилиты для загрузки файлов wget, то ее можно установить командой yum install wget

  • В процессе установки будет задан вопрос, какую версию «Веб-окружения» нужно установить (выбираем версию 5) и ждем окончания установки:

  • Далее после завершения установки нужно открыть порты, которые необходимы для нормальной работы продуктов «1С-Битрикс» в Веб-окружении:
    iptables -I INPUT -p tcp --dport 25 -j ACCEPT
    iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    iptables -I INPUT -p tcp --dport 443 -j ACCEPT
    iptables -I INPUT -p tcp --dport 5222 -j ACCEPT
    iptables -I INPUT -p tcp --dport 5223 -j ACCEPT
    iptables -I INPUT -p tcp --dport 8890 -j ACCEPT
    iptables -I INPUT -p tcp --dport 8891 -j ACCEPT
    iptables -I INPUT -p tcp --dport 8893 -j ACCEPT
    iptables -I INPUT -p tcp --dport 8894 -j ACCEPT
    
    где порты обозначают и используются для следующих сервисов:
    • 25 - smtp сервер;
    • 80 - http ;
    • 443 - https;
    • 5222 - bitrix xmpp сервер;
    • 5223 - bitrix xmpp сервер по ssl;
    • 8890 - ntlm авторизация;
    • 8891 - ntlm авторизация по ssl;
    • 8893 - http сервер мгновенных сообщений;
    • 8894 - https сервер мгновенных сообщений.
  • Порты прописаны, необходимо сохранить таблицу командой:
    service iptables save
    

    Внимание! При установке «1С-Битрикс: Веб-окружение» - Linux версии 7.x+ нужно только сменить пароли при первой авторизации (см. ниже) и создать пул (1. Create Management pool of server). Мастер создания пула откроет все необходимые порты.

  • Установка закончена.
  • Перезагружаем сервер командой reboot, чтобы посмотреть, что все установилось корректно, на экране будет отображено, что запущена машина и ее текущая версия.

  • При первом входе на сервер с логином root будет предложено сменить пароль у пользователя bitrix:

Можно приступать к работе.



Запуск виртуальной машины BitrixVM

  • Загрузите дистрибутив настроенной виртуальной машины BitrixVM.
  • Загруженный архив распакуйте в любую папку, например, С:\BitrixVM\ и запустите виртуальную машину с помощью подходящего ПО:
  • Начнется процесс загрузки операционной системы, установленной на виртуальной машине. В конце загрузки откроется окно:

  • Примечание: Для суперпользователя root по умолчанию задан пароль bitrix.

    При первом запуске виртуальной машины будет предложено сменить пароли суперпользователя root и пользователя bitrix:

    • В строках localhost login укажите текущий логин (root), а в поле Password пароль (по умолчанию bitrix).
    • В строке (current) UNIX password укажите текущий пароль (bitrix) и нажмите Enter.
    • Введите новый пароль в строке Enter new UNIX password и нажмите Enter.
    • Повторите ввод нового пароля в строке Retype new UNIX password и нажмите Enter.

    Аналогично происходит смена пароля пользователя bitrix:

    Примечание: Сменить пароль пользователя bitrix можно позднее в панели управления виртуальным сервером с помощью пункта меню 1. Create Management pool of server - Change bitrix password.

В результате виртуальный сервер готов для использования. Первоначальное меню BitrixVM Available actions выглядит так:

  • 1. Create Management pool of server - создает пул управления сервером;
  • 2. Manage localhost - управление локальным виртуальным сервером;
  • 0. Exit - выход в консоль операционной системы.

Для перехода к выполнению любого действия введите число (от 0 до 2) и нажмите Enter. Например, для настройки локального виртуального сервера в строке наберите 2 (Manage localhost) и нажмите Enter.

Чтобы вернуться в вашу ОС, нажмите Ctrl+Alt.

Чтобы вернуться из shell в меню виртуальной машины, введите команду:

/root/menu.sh

Примечание: При возникновении проблем с сетевым адаптером VMWare Player необходимо перейти в настройки сетевого адаптера (Virtual Machine > Removable Devices > Network Adapter > Settings...), выбрать один из режимов (Bridged, NAT, Host-only):

и перезапустить виртуальный сервер, выбрав пункт меню 2. Manage localhost > 4. Reboot server.

Примечание: При клонировании виртуальной машины BitrixVM или в другом случае при смене MAC-адреса сетевого интерфейса eth0 может возникнуть ошибка IP4: undefined. В таком случае необходимо открыть файл /etc/udev/rules.d/70-persistent-net.rules и в нем удалить (или закомментировать) все строчки для интерфейса eth0 и eth1, сохранить файл и перезагрузить машину командой reboot.


Далее необходимо набрать IP-адрес (полученный в виртуальной машине - IP4) в браузере (в нашем примере это http://192.168.2.15 или https://192.168.2.15). Откроется страница с выбором варианта работы:


Для продолжения необходимо выбрать один из вариантов:

  1. Новая установка - в этом случае будет запущен мастер, который позволяет скачать, установить и создать новый сайт средствами продуктов компании «1C-Битрикс». Шаги этого варианта аналогичны шагам, рассмотренным в главе Установка продукта с помощью BitrixSetup.
  2. Восстановить проект - в этом случае будет запущен мастер, с помощью которого можно будет перенести существующий проект (восстановить проект из резервной копии). Шаги этого варианта аналогичны шагам, рассмотренным в главе Перенос продукта.

Перенос продукта «1C-Битрикс» на виртуальную среду BitrixVM/BitrixEnv

Для переноса сайта с хостинга или локального сервера на виртуальную среду BitrixVM или BitrixEnv необходимы: архив сайта и настроенная виртуальная среда BitrixVM или BitrixEnv. Этот процесс состоит из двух этапов:


Создание архива сайта

  1. Перейти на страницу Резервное копирование (Настройки > Инструменты > Резервное копирование) :

    • архив сайта может быть сохранен в облаке «1С-Битрикс»;

      Примечание: Опция копирования в облако «1С-Битрикс» доступна пользователям с активной лицензией. Также, в целях безопасности, все резервные копии сайта отправляются в облако «1С-Битрикс» всегда зашифрованными. Компания «1С-Битрикс» не может восстановить или поменять пароль! Будьте внимательны, без знания этого пароля восстановить архив не удастся!

    • либо в папке сайта (архив сайта будет сохранен в папке /bitrix/backup/ хостинга с уникальным именем файла).
  2. На вкладке Параметры можно выбрать экспертные настройки создания резервной копии:

    Примечание: Для безопасности данных рекомендуется включить опцию Шифровать данные резервной копии и ввести пароль для архива сайта.

  3. После успешного создания архива сайта он будет доступен на странице Список резервных копий (Настройки > Инструменты > Список резервных копий) . Здесь будут показаны все резервные копии:

  4. Далее понадобится Получить ссылку для переноса с помощью одноименного меню действий:

    и в появившемся окне скопировать ее в буфер обмена:

  5. Также можно скачать архив сайта на локальный компьютер с помощью пункта меню Скачать.


Копирование сайта в виртуальную среду BitrixVM/BitrixEnv

  1. Запустить предварительно настроенную виртуальную среду BitrixVM или BitrixEnv.
  2. В адресной строке браузера ввести http://адрес_виртуальной_машины/ (можно указать домен или ip-адрес).
  3. Откроется мастер установки продукта «1С-Битрикс», где нужно выбрать Восстановить проект:

  4. На этапе загрузки резервной копии выбрать нужный способ хранения архива сайта (в данном случае - ввести ссылку из буфера обмена, полученную на странице со списком резервных копий сайта):

    Примечание: Также есть возможность загрузить архив из облака «1С-Битрикс» (понадобится лицензионный ключ с действующей лицензией) или с локального компьютера, если эти способы были выбраны на этапе создания архива сайта.

  5. После скачивания архива, если архив был зашифрован, то будет предложено ввести пароль:
  6. Далее необходимо настроить подключение к базе данных:

    Настройки подключения к MySQL по умолчанию в виртуальной машине BitrixVM:

    • Сервер: localhost
    • Пользователь БД: bitrix0
    • Пароль: <подставляется автоматически>
    • Имя БД: sitemanager0

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

  7. После успешного восстановления базы данных в целях безопасности необходимо Удалить локальную резервную копию и служебные скрипты, нажав на одноименную кнопку:

  8. Перенос продукта «1C-Битрикс» на виртуальную среду BitrixVM/BitrixEnv закончен:



Управление хостами (Manage Hosts in the pool)

Для начала работы с сервисами нужно создать и настроить пул сервера или нескольких серверов. Для этого нужно выбрать пункт главного меню 1. Create Management pool of server и ввести название сервера в данном пуле.

После создания пула в основном меню добавятся новые пункты как в главном меню:

Так и в меню Manage Hosts in the pool:

Добавление нового хоста в пул (Add new host in the pool)

Добавление нового хоста в пул (кластер) осуществляется с помощью меню 1. Manage Hosts in the pool > 1. Add new host in the pool.

Для этого необходимо задать ip-адрес или DNS-имя хоста и выбрать короткое имя для подключаемого сервера:

Таким образом, можно добавлять любое количество серверов в пул:

Теперь можно управлять любым сервером пула с одной машины.

Примечание: Если зайти на присоединенный к пулу сервер, то система оповестит о нахождении данного сервера в пуле и невозможности отображения управляемого меню:



Удаление хоста из пула (Delete host from pool)

Удаления хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage Hosts in the pool > 2. Delete host from pool .

Для этого необходимо задать ip-адрес или DNS-имя хоста удаляемого из пула сервера:

После подтверждения сервер будет удален из пула:



Перезапуск хоста (Reboot host)

Перезагрузка хоста, находящегося в пуле, осуществляется с помощью меню 1. Manage Hosts in the pool > 3. Reboot host.

Для этого необходимо задать имя хоста (в данном примере - server4) и согласиться на перезапуск сервера:



Обновление BitrixEnv на хосте (Update BitrixEnv on host)

С помощью менеджера пула можно удаленно обновлять Веб-окружение и компоненты системы на любом хосте, входящем в пул.

Например, в пул добавлена виртуальная машина версии 5.0.37, нам нужно обновить ее до 5.0.44.

  • Выбираем пункт меню 1. Manage Hosts in the pool > 4. Update BitrixEnv on host, система спросит имя хоста для обновления и подтверждение действия:

  • Менеджер пула запустит задачу обновления Веб-окружения на удаленном хосте:

  • Через некоторое время система на удаленном хосте обновится до последней версии (в данном примере - 5.0.44)

Таким же образом можно обновлять включенные в пул виртуальные машины версии 4.3.



Смена пароля пользователя bitrix (Change password for bitrix user on host)

Смена пароля для пользователя bitrix осуществляется через пункт меню 1. Manage Hosts in the pool > 5. Change password for bitrix user on host.

Будет выдан запрос имени хоста, на котором нужно сменить пароль пользователя bitrix, и согласие на это действие:

Внимание! Сменить пароль пользователя root через меню виртуальной машины нельзя. Для этого необходимо воспользоваться системными командами ОС. Например, для Centos 6.х консольная команда смены пароля пользователя root: passwd.



Настройка таймзоны в пуле (Configure timezone in the pool)

Настройка таймзоны - очень важный параметр, который обязательно нужно проверить и при необходимости настроить правильно. Параметр влияет на синхронизацию с 1С, календари, заказы и многое другое, где требуется дата и время.

Дата и время на сервере - это не одна конкретная дата и время, это фактически три различных даты и три различных времени со своими часовыми поясами:

  • Время сервера
  • Время PHP
  • Время MySQL

Смена таймзоны происходит через пункт меню веб-окружения 1. Manage Hosts in the pool > 6. Configure timezone in the pool, и меняет дату и время, в трех местах сразу, т.к это очень важный момент, что все три места работают с одинаковыми параметрами времени и даты.

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

  • После этого будет предложено также изменить таймзону для PHP:

  • И в заключение нужно подтвердить изменение таймзоны для всех серверов, входящих в пул:

Примечание: Корректность установки времени у PHP и MySQL можно проверить также через административный веб интерфейс продуктов «1C-битрикс»: Настройки > Инструменты > Проверка системы.



Обновление PHP и MySQL (Upgrade php and mysql versions)

В процессе обновления BitrixVM до версии 5.1.х и выше PHP и MySQL автоматически не обновляются. Обновить их можно в ручном режиме с помощью пункта меню виртуальной машины 1. Manage hosts in the pool - 8. Upgrade php and mysql versions.

Примечание: Пункт меню 1. Manage hosts in the pool - 8. Upgrade php and mysql versions появится только при обновлении BitrixVM с предыдущих версий до версии 5.1.х и выше.

Внимание! Для того, чтобы воспользоваться обновлением PHP до версии 5.6, необходимо предварительно обновить версию PHP до 5.4 и MySQL до 5.5 с помощью пункта меню 1. Manage hosts in the pool - 8. Upgrade php and mysql versions и далее уже повторно с помощью этого же пункта меню обновить до версии PHP 5.6.

Обновление до более высоких версий проводится аналогично.

После выбора пункта 8. Upgrade php and mysql versions, подождав пока выполнится фоновая задача обновления, в итоге будут обновлены PHP и MySQL до своих [ds]актуальных[/ds][di]С 1 августа 2020 года требуется PHP версии не ниже 7.2.0. Рекомендуемая версия PHP - 7.4.0 и выше.

Подробнее...[/di] версий.



Управление локальным сервером (Manage localhost)

  • 1. Configure hostname - задается название хоста виртуального сервера;
  • 2. Configure network interface via DHCP - получение нового IP-адреса автоматически с помощью DHCP-сервера;
  • 3. Configure network interface manually - настройка IP-адреса сервера вручную;
  • 4. Reboot server - перезагрузка виртуального сервера;
  • 5. Shutdown server - выключение виртуального сервера;
  • 6. Update server - обновление компонентов операционной системы виртуальной машины.
  • 0. Previous screen or exit - возвращение к главному меню.


Изменение названия хоста

Чтобы задать имя хоста локального сервера, нужно перейти в главном меню 2. Manage localhost - Configure hostname:

Далее согласиться на изменение имени хоста и ввести название Input hostname - например server1 (по умолчанию имя хоста - localhost.localdomain):

После чего системе будет присвоено новое имя:



Настройка IP-адреса сервера

При первом старте BitrixVM получение IP-адреса сервером происходит автоматически, если в сети есть настроенный DHCP-сервер.

Если по каким-либо причинам необходимо сменить IP-адрес сервера, можно сделать это в двух режимах: автоматическом и ручном.

Автоматическое получение IP-адреса через DHCP-сервер

  • Чтобы сменить IP-адрес локального сервера с помощью DHCP-сервера, нужно перейти в главном меню 2. Manage localhost - 2. Configure network interface via DHCP.
  • Выбрать сетевой интерфейс (в данном примере - eth0) и автоматически будет получен IP-адрес от DHCP-сервера:



Ручное изменение IP-адреса

  • Для задания IP-адреса в ручном режиме необходимо перейти в главном меню 2. Manage localhost - 3. Configure network interface manually.
  • Выбрать сетевой интерфейс (в данном примере - eth0).
  • Ввести данные:

    • Type IP address - новый IP-адрес сервера;
    • Type broadcast - широковещательный адрес сети;
    • Type network mask - маска подсети;
    • Type default gateway - шлюз по умолчанию;
    • Type DNS server - адрес DNS-сервера.
  • Проверить введенные данные и дать согласие на изменение параметров сети сервера:



Обновление локального сервера

Внимание! Обновление продукта «1C-Битрикс: Виртуальная машина» - сложная операция, в процессе которой происходит обновление системных файлов операционной системы виртуальной машины, и для этого необходимы соответствующие знания администрирования *nix-систем. Перед запуском обновления рекомендуется сделать полный бекап «Виртуальной машины».


Для обновления локальной виртуальной машины необходимо выбрать в административном меню пункт 2. Manage localhost - 6. Update server.

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

Внимание! Этот пункт меню запускает обновление компонентов лишь текущей виртуальной машины. Если у вас несколько серверов в пуле (кластер), то целесообразно производить обновление для всех виртуальных машин, входящих в этот пул.



Примечания:
  • Если после обновления, что-то перестанет работать, то можно вернуть полностью или частично старые файлы настроек соответствующей службы, т.к. конфигурационные файлы при обновлении не перезаписываются, а сохраняются в файлах *.ori.(метка времени).
  • Также в процессе обновления могут отключиться некоторые модули php. Для их включения необходимо выполнить следующие команды:
    mv -f /etc/php.d/(имя модуля).ini.disabled /etc/php.d/(имя модуля).ini
    service httpd restart
    


Настройка MySQL (Configure MySQL servers)

В «1C-Битрикс: Виртуальная машина» можно быстро развернуть кластерную конфигурацию master-slave «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».

Ключевые особенности:

  • гибкая балансировка нагрузки SQL
  • простота администрирования
  • дешевое и быстрое неограниченное масштабирование
  • он-лайн бэкап
  • не требуется доработка логики веб-приложения

Схема «master - slave» реализуется средствами MySQL. Платформа «1С-Битрикс» позволяет гибко балансировать нагрузку между серверами, участвующими в репликации.

Внимание! Для создания конфигурации MySQL master-slave необходим модуль Веб-кластер, который входит не во все редакции продуктов «1С-Битрикс».



  • Создание slave сервера MySQL (Create slave MySQL server)
  • Смена master сервера MySQL (Change master MySQL server)
  • Удаление slave сервера MySQL (Remove slave MySQL server)


  • Создание slave сервера MySQL (Create slave MySQL server)

    Для создания slave сервера MySQL нужно:

    • Выбрать пункт меню 3. Configure MySQL servers > 2. Create slave MySQL server, придумать и ввести пароли репликации и кластера:

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

    • Ввести имя хоста в пуле, на котором будет создан slave сервер MySQL (в данном примере - server3):

    • Подождать, пока задача по добавлению slave cервера MySQL будет закончена.
    • Создадим аналогичным образом еще один slave сервер MySQL (server4). В итоге получим три сервера MySQL: master (server1) и два slave (server3 и server4):


    Смена master сервера MySQL (Change master MySQL server)

    Для переноса master сервера MySQL на другую машину необходимо:

    • Выбрать пункт меню 3. Configure MySQL servers > 3. Change master MySQL server.
    • Ввести имя хоста для будущего master сервера MySQL из списка доступных slave (например server3):

    • Подождать, пока задача по смене master cервера MySQL будет закончена.
    • В итоге серверы MySQL станут: master (server3) и два slave (server1 и server4):


    Удаление slave сервера MySQL (Remove slave MySQL server)

    Для удаления slave сервера MySQL необходимо:

    • Выбрать пункт меню 3. Configure MySQL servers > 4. Remove slave MySQL server.
    • Ввести имя хоста удаляемого slave сервера MySQL (например server1):

    • Подождать, пока задача по удалению slave cервера MySQL будет закончена.
    • В итоге серверы MySQL станут: master (server3) и один slave (server4):

    Таким образом, мы перенесли master сервер MySQL с машины server1 на server3, создали дополнительный slave сервер MySQL на машине server4 и освободили ресурсы машины server1 под другие роли.


    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks.



    Настройка memcached (Configure memcached servers)

    Продукты «1С-Битрикс» позволяет использовать пул серверов memcached для работы с кешем данных.

    Это обеспечивает:

    • высокую эффективность - за счет централизованного использования кеша веб-приложением;
    • надежность - за счет устойчивости подсистемы кеширования к выходу из строя отдельных компонентов;
    • неограниченную масштабируемость - за счет добавления новых memcached-серверов.

    Внимание! Для использования пула серверов memcached необходим модуль Веб-кластер, который входит не во все редакции продуктов «1С-Битрикс».

  • Создание memcached сервера (Create memcached server)
  • Удаление memcached сервера (Remove memcached server)
  • Создание memcached сервера (Create memcached server)

    Для создания memcached сервера нужно:

    • Выбрать пункт меню 4. Configure memcached servers > 1. Create memcached server.
    • Ввести имя хоста в пуле, на котором будет запущен сервер memcached (в данном примере - server2):

    • Подождать, пока задача по запуску cервера memcached будет закончена:

    Удаление memcached сервера (Remove memcached server)

    Для удаления memcached сервера необходимо:

    • Выбрать пункт меню 4. Configure memcached servers > 3. Remove memcached server:
    • Ввести имя хоста удаляемого memcached сервера (например server5):

    • Подождать, пока задача по удалению memcached cервера будет закончена.

    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks.



    Фоновые задачи (Background tasks in the pool)

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

    Просмотреть историю задач, а также выполняемые в данный момент задачи, можно с помощью пункта меню 5. Background tasks in the pool:

    Просмотреть запущенную в данный момент задачу можно с помощью пункта меню 5. Background tasks in the pool > 1. View running tasks:

    Для остановки запущенной в данный момент задачи нужно перейти в пункт меню 5. Background tasks in the pool > 1. View running tasks > 1. Stop task и ввести идентификатор задачи:

    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера.



    Чтобы очистить историю задач нужно выбрать пункт меню 5. Background tasks in the pool > 2. Clean history:

    Далее выбрать количество дней, за которое нужно оставить историю задач, и фильтр, по которому выбирать задачи (к примеру, выберем все задачи с TaskID common):

    После этого будут выведены все задачи, удовлетворяющие заданному интервалу и фильтру, и далее запрос на очистку истории:

    Внимание! Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.



    Управление сайтами (Manage sites in the pool)

    Примечание: При создании сайта через BitrixVM, в Базе данных создается пользователь с двумя записями. Одна запись используется для хоста localhost, вторая - для %. Вторая запись используется для создания кластерной конфигурации или переноса mysql сервера на отдельный хост.

    Создание и удаление сайта (Create\Delete site)

    Мастер создания дополнительных сайтов, позволяет развернуть на одной виртуальной машине несколько сайтов, как на независимых установках «1С-Битрикс», так и в рамках многосайтовости.

    Внимание! В BitrixVM\BitrixEnv версии 5.1.х перед добавлением сайта убедитесь, что у вас используется пустой root пароль к MySQL. При необходимости перед добавлением сайта можно сделать его пустым, а потом вернуть обратно.

    В BitrixVM\BitrixEnv версии 7.х root пароль к MySQL не может быть пустым, он устанавливается для BitrixEnv на этапе установки, а для BitrixVM автоматически при первом старте. Изменить его можно в меню 3. Configure MySQL server > 2. Change password for mysql user root.


    Добавление дополнительного сайта

    Для добавления дополнительного сайта необходимо:

    • Предварительно настроить DNS-сервер или в случае локальной установки указать доменное имя в /etc/hosts на виртуальной машине, а также на всех машинах, с которых будет осуществляться доступ к данному сайту.
    • Далее из административного меню запустить мастер 6. Manage sites in the pool > 1 Create site:

      и указать:
      1. Enter site name - доменное имя дополнительного сайта без www;

        Внимание! Если у вас домен в национальной кодировке (например, кириллический домен), то в данное поле нужно вводить имя домена в Punycode-формате, воспользовавшись любым Unicode-Punycode конвертером (например этим).

      2. Enter site type - тип установки ядра «1С-Битрикс»:
        • kernel - в случае создания дополнительного сайта в рамках отдельной установки - отдельное ядро продукта «1С-Битрикс» в новой директории сайта.
        • ext_kernel - отдельное ядро продукта «1С-Битрикс» в новой директории сайта для создания линков на это ядро в рамках многосайтовости, ядро будет недоступно напрямую, а только через дополнительные сайты (работает в паре с сайтами типа link).
        • link - в случае создания дополнительного сайта в рамках многосайтовости - общее ядро и данные в общей базе с уже установленным продуктом «1С-Битрикс» (работает в паре с ядром ext_kernel).
      3. Enter full path to the Bitrix installation directory - указать путь до ядра продукта «1С-Битрикс», на которые будут сделаны симлинки (для ядра типа link).
      4. Enter site encoding - указать кодировку будущего сайта: UTF-8 или windows 1251 (для ядра типа kernel и ext_kernel).
      5. Do you want to enable cron task on site - включить ли выполнение заданий на cron для будущего сайта (для ядра типа kernel и ext_kernel).
      6. Do you want to specify them - по умолчанию название, логин и пароль базы данных и root-директория сайта создаются автоматически (в файлах dbconn.php до версии 20.900.0 и только .settings.php с этой же версии), но с помощью данной опции можно указать свои, выбрав ответ y (для ядра типа kernel и ext_kernel).
    • В процессе работы мастера будет создана директория на сервере: /home/bitrix/ext_www/{название_хоста}, в которой будут:
      • символические ссылки на директорию ядра, которую выбрали ранее (если был выбран вариант link).
      • директории и скрипт BitrixSetup для установки или восстановления продукта (если был выбран вариант kernel).
      • директории и скрипт BitrixSetup для восстановления продукта (если был выбран вариант ext_kernel).
    • После завершения задачи по добавлению сайта он будет готов к использованию.

      Примечание: Количество дополнительных сайтов ограничивается лишь лицензией «1С-Битрикс» данной установки.

    Внимание! Если был выбран вариант ядра ext_kernel и установлено ядро в /home/bitrix/ext_www/{название_хоста}, то в списке сайтов виртуальной машины данное ядро не появится до тех пор, пока не будет создан хотя бы один сайт (link) на это ядро.


    Удаление дополнительного сайта

    Для удаления записи о дополнительном сайте необходимо в административном меню «1C-Битрикс: Виртуальная машина» выбрать пункт 6. Manage sites in the pool > 2. Delete site и выбрать директорию удаляемого сайта (Enter site directory):

    Внимание! Мастер удаления дополнительного сайта удаляет папку и базу данных дополнительного сайта, поэтому необходимо предварительно сделать бекап важных данных.


    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks.

    Материалы по теме:



    Настройка задач cron (Change cron tasks on site)

    По умолчанию в виртуальной машине cron уже включен. Если по каким-либо причинам нужно отключить службу cron, то для этого необходимо:

    • Перейти в главном меню в 6. Manage sites in the pool > 3. Change cron tasks on site и ввести директорию сайта, для которого нужно отключить службу cron:

    • Согласиться на отключение cron и дождаться пока задача будет закончена:

    Аналогичным способом осуществляется включение cron:


    Внимание! Информацию о том, как настроить в продуктах «1С-Битрикс» обработку всех агентов на cron, можно прочитать здесь.



    Настройка почтового сервера (Change e-mail settings on site)

    Для настройки интегрированного почтового сервера выполните следующее:

    1. Перейти в главном меню в 6. Manage sites in the pool > 4. Change e-mail settings on site и ввести имя хоста, для которого нужно настроить отправку почты:

    2. Далее ввести необходимые данные для почтового сервера:

      • from address - адрес отправителя, от которого будет осуществляться пересылка писем.
      • server address or DNS - ip- или dns-адрес почтового сервера. Если нажать Enter, то будет использован адрес по умолчанию (127.0.0.1)
      • server port - порт сервера. Порт зависит от типа соединения, 25 - для обычного и 465 - для зашифрованного (с использованием SSL). Если нажать Enter, то будет использован порт по умолчанию (25).
      • Если необходима SMTP-авторизация, то в строке SMTP authentication наберите y и введите логин и пароль для доступа к SMTP-серверу, в противном случае - n.
      • Если выбрана опция SMTP-авторизации, то понадобится ввести тип авторизации type of authentication method: auto, plain, scram-sha-1, cram-md5, gssapi, external, digest-md5, login, ntlm.
      • Если необходим TLS-протокол защищенной передачи данных, то в строке TLS enabled наберите y, в противном случае - n.

    3. Дождаться пока задача по настройке почтового сервера будет закончена.
    4. Убедиться в правильности введенных данных настройки почтового сервера можно снова в 6. Manage sites in the pool > 4. Change e-mail settings on site:


    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks.



    Настройка https на сайте (Change https settings on site)

    По умолчанию в виртуальной машине включена поддержка доступа к сайтам через протоколы HTTP и HTTPS.

    Если необходимо оставить доступ к сайту только по защищенному протоколу HTTPS, то для этого нужно:

    • Перейти в главном меню в 6. Manage sites in the pool > 5. Change https settings on site и ввести имя хоста, для которого нужно настроить протокол доступа:

    • Согласиться на отключение HTTP доступа и дождаться пока задача будет закончена:

      Внимание! Для доступа к сайту только по протоколу HTTPS необходим SSL-сертификат от доверенного центра сертификации, иначе браузеры будут выдавать ошибку, что сертификат безопасности сайта не является доверенным.

    Аналогичным способом осуществляется возврат доступа к сайту по протоколу HTTP:


    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks.



    Настройка резервного копирования сайта (Change backup settings on site)

    При разворачивании проектов на базе BitrixVM, часто встает задача создания резервной копии проекта по расписанию.

    В «1C-Битрикс: Виртуальная машина» версии 4.х появился функционал автоматического резервного копирования сайта, находящегося в директории /bitrix/home/www/, и базы данных. Бекап будет создан по расписанию в виде архива .tar.gz и записан в директории /home/bitrix/backup/archive/.

    У данного способа есть как преимущества, так и недостатки в сравнении с встроенным в продукты «1С-Битрикс» механизмом создания резервной копии:

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

    Для создания расписания автоматического резервного копирования средствами BitrixVM необходимо:

    • В меню виртуальной машины выбрать пункт 6. Manage sites in the pool > 6. Change backup settings on site.
    • Выбрать из списка имя хоста и согласиться на изменение настроек расписания автоматического резервного копирования:

    • Выбрать периодичность и час запуска автоматического резервного копирования:

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

      /opt/webdir/bin/bx-sites -a backup -d dbcp --enable --minute=10 --hour=18 --day=any --month=any --weekday=any
      

      Примечание: Как настроить правильное время в «1C-Битрикс: Виртуальная машина» см. здесь.

    • На этом работа мастера настройки завершена, и в Cron (/etc/crontab) добавляется задача резервного копирования проекта:

      Бэкап делается для ядра (сайта типа kernel и ext_kernel) и всех его link, если такие существуют. Для этого создается задание в crontab-файле:

      10 22 * * * bitrix /opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive
      

      В качестве первой опции указывается имя БД, второй опцией указывается каталог, в котором будет создан архив.

      В итоге скрипт создаст архив следующего вида: www_backup__DD.MM.YYYY_<random_string>.tar.gz (например - www_backup_dbcp_21.10.2014_1RJKXbMv.tar.gz).

      Внутри архива должны присутствовать следующие файлы:

      1. дамп БД /home/bitrix/mysql_dump__DD.MM.YYYY_.sql
      2. данные сайта ядра
      3. данные сайтов типа ссылок с полным путем

    Управление бэкапами через bx-sites

    • -a|--action - действие по управлению сайтами, в данном случае это backup
    • -d|--database - название БД (в бэкапе будут содержаться данные для всех сайтов, которые используют эту БД)
    • --enable|--disable - включение или отключение бэкапа для сайтов
    • --minute - параметры записи в crontab файле (минуты)
    • --hour - параметры записи в crontab файле (часы)
    • --day - параметры записи в crontab файле (день)
    • --month - параметры записи в crontab файле (месяц)
    • --weekday - параметры записи в crontab файле (день недели)

    В случае успешного выполнения утилита вернет новые опции для сайта:

    /opt/webdir/bin/bx-sites -a backup -d sitemanager0 --enable --minute=10 --hour=23 --day=1 --month=any --weekday=any -o json | python -mjson.tool  
    ...
                "BackupCronFile": "/etc/crontab",
                "BackupDay": "1",
                "BackupFolder": "/home/bitrix/backup/archive",
                "BackupHour": "23",
                "BackupMinute": "10",
                "BackupMonth": "*",
                "BackupTask": "enable",
                "BackupVersion": "v5",
                "BackupWeekDay": "*", 
    ...
    

    Списки исключений

    Ряд файлов/каталогов необходимо исключить из резервной копии. Список таких исключений можно найти в файле /opt/webdir/bin/ex.txt.

    По умолчанию, в нем находятся следующие подкаталоги:

    bitrix/cache
    bitrix/managed_cache
    bitrix/stack_cache
    bitrix/local_cache
    bitrix/backup
    bitrix/tmp
    upload/tmp
    upload/resize_cache
    

    Содержимое бэкапа/восстановление

    Как уже сказано выше, в бэкап включается:

    • сам каталог сайта ядра (kernel или ext_kernel);
    • файл dump БД (/home/bitrix/mysql_dump_<db>.sql);
    • каталоги сайтов (link), которые используют ядро.

    Например команда:

    /opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive
    

    создает файл www_backup_sitemanager0_30.01.2015_bnnW1NPm.tar.gz в директории /home/bitrix/backup/archive/

    Для восстановления, нужно перейти в DocumentRoot ядра, выполнить:

    tar xzvvf www_backup_sitemanager0_30.01.2015_zEQkXREd.tar.gz ./
    ...  
    -rw-r--r-- bitrix/bitrix    5013 2015-01-30 14:02 ./workgroups/.left.menu_ext.php
    -rw-r--r-- bitrix/bitrix     319 2015-01-30 14:01 ./.top_links.menu.php
    -rw-r--r-- root/root     5313008 2015-01-30 14:22 home/bitrix/mysql_dump_sitemanager0_30.01.2015_bnnW1NPm.sql
    drwxr-xr-x                    Creating directory: home
    drwxr-xr-x                    Creating directory: home/bitrix
    -rw-r--r-- root/root          44 2015-01-30 14:22 home/bitrix/mysql_dump_sitemanager0_30.01.2015_bnnW1NPm_after_connect.sql
    

    После чего нужно восстановить БД:

    mysql sitemanager0 < home/bitrix/mysql_dump_sitemanager0_30.01.2015_bnnW1NPm_after_connect.sql
    

    И данные дополнительных сайтов, если они есть:

    rsync -av home/bitrix/ext_www/ /home/bitrix/ext_www/
    


    Примечание: Не забывайте следить за свободным местом на диске и периодически удалять старые резервные копии.



    Настройка NTLM-авторизации на всех сайтах (Configure NTLM auth for all sites)

    Для поддержки механизма NTLM-авторизации продуктами «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке» необходим модуль AD/LDAP интеграция версии 11.5.0 и выше.

    После включения и настройки новый механизм NTLM-авторизации начинает работать следующим образом:

    • неавторизованный посетитель приходит на проект, где обработчиком события он перенаправляется на открытый порт Apache (8890 для http или 8891 для https);
    • Apache выполняет NTLM-авторизацию пользователя и пользователь перенаправляется назад на 80 или 443 порт (для http и https соответственно);
    • следующие переходы по сайту пользователь выполняет в обычном режиме.

    Рассмотрим настройку на примере «Битрикс24 в коробке».


    Настройка NTLM-авторизации пользователей в «Битрикс24 в коробке»

    • Во время установки, в мастере выбираем Разрешить пользователям Active Directory авторизовываться на портале:

    • Далее вводим настройки подключения к домену AD, проверяем соединение:

    • Указываем соответствия групп в AD группам корпоративного портала:

    • После завершения установки в административном разделе портала открываем страницу Active Directory / LDAP серверы (Настройки > AD/LDAP):

    • редактируем параметры сервера Active Directory, указывая домен для NTLM авторизации:

    • После этого заходим в настройки модуля AD/LDAP и устанавливаем Использовать NTLM авторизацию:

    Продукт «1С-Битрикс» готов к использованию NTLM-авторизации, осталось настроить виртуальную машину.


    Внимание! Если необходимо для локальной сети компании настроить NTLM-авторизацию, а для сотрудников, работающих с порталом, использовать стандартную авторизацию, то дополнительно в настройках модуля AD/LDAP нужно указать диапазон IP-адресов, для которых необходима NTLM-авторизация - Ограничить NTLM переадресацию следующей подсетью (например, 192.168.0.1/24):


    Настройка NTLM-авторизации пользователей в «1С-Битрикс: Виртуальная машина»

    Для настройки виртуальной машины необходимо подключитьcя к ней под пользователем root, выбрать пункт меню 6. Manage sites in the pool > 7. Configure NTLM auth for all sites и ввести необходимые данные:

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

    Примечание: Проверить, что компьютер успешно введен в домен можно командой:
    net ads testjoin

    Настройка завершена, для успешной NTLM-авторизации осталось проверить настройки браузеров.


    Настройка NTLM-авторизации в браузерах

    • Internet Explorer

      Для успешной NTLM-авторизации нужно, чтобы веб-сервер находился в зоне Local Intranet (при необходимости нужно добавить):

    • Mozilla Firefox:

      Добавить веб-сервер к списку доверенных URI для автоматической NTLM-авторизации (через параметр network.automatic-ntlm-auth.trusted-uris на странице Firefox: about:config)

    Примечание: Действия по включению NTLM-авторизации на уже установленном продукте «Битрикс24 в коробке», а также в «1С-Битрикс: Управление сайтом» аналогичны перечисленным выше, за исключением того, что сервер Active Directory добавляется вручную в административном разделе.

    Настройка xmppd|smtpd сервисов для сайта (Configure optional services (xmppd|smtpd) for site)

    Мастер позволяет управлять работой сервисов XMPP и SMTP с помощью Cron. Это может понадобится, если необходимо рассылать jabber- и почтовые сообщения в случае, если на сайте нет активности, т.е если все события на сайте работают на хитах.


    Для управления необходимо:

    • Из административного меню запустить мастер 6. Manage sites in the pool > 8 Configure optional services (xmppd|smtpd) for site:

    • Далее указать:
      • Enter site-name - имя сайта;
      • Enter service name - имя сервиса xmppd или smtpd.
    • И согласиться на активацию работы сервисов через Cron:

    • После завершения данной задачи jabber-уведомления и почтовые сообщения будут отправляться по cron-расписанию, независимо от активности на сайте.

    Аналогичным образом отключается данные опции:


    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks.



    Настройки NGINX в BitrixVM для работы с композитом

    Внимание! Настройки в виртуальной машине BitrixVM должны производиться после осуществления настроек Композитного сайта в Административном разделе. Если такие настройки выполнены в колонке Composite должно стоять Y.

      Конфигурации NGINX

    Конфигурации NGINX для работы с композитом

    Примечание: Если сайтов несколько, то для каждого сайта, для которого включается Композитный сайт, нужно осуществить настройки, описанные ниже.

    Управление настройками композитного кеша для NGINX находятся в меню виртуальной машины: 6. Manage sites in the pool > 9. Configure nginx for composite:

    Эта настройка выполняет следующие действия:

    1. По настройкам, заданным в форме Композитный сайт в Административном разделе, создает конфигурационный файл условий работы композита, персональных для сайта, в каталоге /etc/nginx/bx/maps. Например, включен или выключен композит для https запросов.
    2. Обновляет настройки сайта, добавляет:
      • проверку условий, глобальных (общих для всех сайтов) и персональных,
      • выбранного для композита хранилища (files, memcached), если все условия выполняются.

      Включение настроек

    Включение и обновление настроек NGINX для композита

    Для включения или обновления настроек:

    1. Укажите имя сайта.
    2. Подтвердите выбор, запустится фоновое задание, которое выполнит все настройки описанные в предыдущих пунктах.

    Примечание. Так же можно воспользоваться утилитой командной строки bx-sites. (Не забудьте указать нужный сайт вместо default в примере.)
    /opt/webdir/bin/bx-sites -o json -a composite --enable --site=default

      Выключение настроек

    Выключение настроек NGINX по работе с композитом

    Для отключения настроек:

    1. Укажите имя сайта.
    2. Откажитесь от обновления существующих настроек.
    3. Подтвердите отключение настроек Композита, запустится фоновое задание, которое вернет настройки сайта к значениям по умолчанию.

    Примечание Так же можно воспользоваться утилитой командной строки bx-sites. (Не забудьте указать нужный сайт вместо default в примере.)
    /opt/webdir/bin/bx-sites -o json -a composite --disable --site=default

      PHP или NGINX?

    После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.

    Заголовки при использовании Композита в BitrixVM могут быть такие:

    • X-Bitrix-Composite:Nginx (file) - отдача страниц - NGINX, хранение - файлы;
    • X-Bitrix-Composite:Nginx (memcached) - отдача страниц - NGINX, хранение - memcached;
    • X-Bitrix-Composite:Cache (200) - отдача страниц - PHP, хранение - файлы.

    Условия работы композитного кеша

    Примечание: Указанные в этом уроке настройки производить не нужно. Здесь дано описание того, что происходит при включении настроек NGINX на технологию Композитный сайт в BitrixVM только для ознакомления.

    Глобальные условия

    Настройки определяются в файле: /etc/nginx/bx/maps/composite_settings.conf. NGINX не использует технологию Композитный сайт, если соблюдается хотя бы одно условие:

    1. есть заголовок BX_ACTION_TYPE,
    2. есть заголовок BX_AJAX,
    3. это не GET-запрос,
    4. в query_string есть параметр ncc,
    5. в query_string есть параметр bxajaxid,
    6. в query_string есть параметр sessid,
    7. запрос сделан из IE ранее 10 версии,
    8. запрос по адресу /bitrix/,
    9. запрос по адресу /index_controller.php,
    10. есть [ds]кука[/ds][di] Cookie - это текстовая строка информации, которую веб-сервер передает в браузер посетителя сайта и которая сохраняется в файле на устройстве посетителя сайта. Как правило, используется для определения уникальности посетителя, времени его последнего визита, личных настроек, уникального идентификатора корзины покупок и т.д.

      Подробнее...[/di] NCC,
    11. есть куки LOGIN, UIDH и при этом нет куки CC.

    Определение условий сделано через http_ngx_map_module:

    • По каждому из условий создано свое отображение. Например, в случае если переменная $http_bx_action_type содержит данные, то композитный ключ $not_bx_action_type будет содержать 0.
      map $http_bx_action_type $not_bx_action_type {
        default "0";
        ''      "1";
      }
    • Все условия используются для финальной проверки:
      # test all global conditions
      map "${not_bx_action_type}${not_bx_ajax}${is_get}${non_arg_ncc}${non_arg_bxajaxid}${non_arg_sessid}${is_modern}${is_good_uri}${non_cookie_ncc}${is_storedAuth}" $is_global_composite {
        default     "1";
        ~0          "0";
      } 

      Если хоть одно из условий содержало 0, то итоговое значение переменной $is_global_composite будет равно 0.

    Персональные условия

    Персональные проверки, зависящие от настроек выбранных в настройках Композитный сайт. определяются в момент включения или обновления композита из консольного меню. Для таких настроек создается и обновляется файл в каталоге: /etc/nginx/bx/maps/. Имя файла имеет специальный формат: <ID>.cache_<SITE_NAME>.conf, где:

    • ID - уникальный идентификатор сайта для кеша (инкрементное значение от 1),
    • SITE_NAME - имя сайта в системе (example.org).

    NGINX не будет использовать композитный кеш, если выполняется хотя бы одно из условий:

    1. в query_string есть параметр из конфига (ключ ~EXCLUDE_PARAMS в .config.php),
    2. запрос по протоколу HTTPS (по галочке в настройках),
    3. запрос на домен, не указанный в списке доменов (ключ DOMAINS в .config.php),
    4. запрос по адресу, не указанному в "маске включения" ( ключ ~INCLUDE_MASK в .config.php),
    5. запрос по адресу, указанному в списке "маска исключений" ( ключ ~EXCLUDE_MASK в .config.php).

    Определение условий сделано через http_ngx_map_module:

    • По каждому из условий, найденных в .config.php, создается свое отображение. Например, если задано условие INCLUDE_MASK для запроса, будет создана следующая структура:
      # test include uri for site
      map $uri $is_include_uri_02 {
        default  "0";
        "~*^.*?\.php$"  "1";
        "~*^.*?/$"  "1";
      
      }

      Если переменная $uri содержит одно из следующих регулярных выражений, то $is_include_uri_02 будет содержать 1, в остальных случая переменная будет равна 0.

      Примечание: Обратите внимание, что в переменной используется идентификатор сайта, это сделано для того, чтобы разграничить условия разных сайтов.

    • Все найденные условия, используются для финальной проверки:
      # variable $is_site_composite_02 used in site config
      map "${config_domain_02}${is_include_uri_02}${not_exclude_uri_02}${not_https_schema_02}" $is_site_composite_02 {
        default   "1";
        ~0        "0";
      }
      Если хоть одна из переменных получит значение 0, переменная $is_site_composite_02 будет содержать 0, в остальных случаях 1.

      Ключ поиска в композите

    Ключ - это файл, который NGINX будет искать в композитном кеше (ключ для mecached хранилища, файл в случае хранения на файлах). Он нужен для того, чтобы привести запрос на сайт (uri) к универсальному виду.

    Данный ключ определяется в глобальных настройках в файле /etc/nginx/bx/maps/composite_settings.conf. Так же, как для условий, используется модуль nginx ngx_map_module:

    map $uri $composite_key {
      default                         $uri;
      ~^(?P.+)/$           $non_slash;
      ~^(?P.+)/index.php$  $non_index;
      ~^(?P.+)/index.html$ $non_index;
    }

    Действуют следующие правила:

    • Если запрос заканчивается на слеш, то вырезается финальный слеш из запроса.
    • Если запрос содержит index.php или index.html, то они вырезаются из запроса.

    Конфигурационный файл сайта

    Примечание: Указанные в этом уроке настройки производить не нужно. Здесь для ознакомления дано описание того, что происходит при включении настроек NGINX на технологию Композитный сайт в BitrixVM.

      Проверка включения

    Проверки для включения технологии на стороне NGINX используются в конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled. В случае стандартной конфигурации, файл обычно содержит следующие настройки:

        # Include parameters common to all websites
        include bx/conf/bitrix.conf;

    При включенной технологии Композитный сайт, настройки зависят от выбранного хранилища.

    Хранение в файлах

    1. В файле /bitrix/html_pages/.config.php опция STORAGE содержит значение files.
    2. В конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled, должно быть прописано:
        # определяем ключ композита и файл на диске
        set $composite_cache    "bitrix/html_pages/${host}${composite_key}/index@${args}.html";
        set $composite_file     "${docroot}/${composite_cache}";
      
        # файл, который определяет включен ли композит на сайте или нет
        set $composite_enabled  "${docroot}/bitrix/html_pages/.enabled";
         
        # переменная, которая используется для композитной проверки
        set $use_composite_cache "";
        # если переменная глобальных условий содержит 1, добавляем признак в  use_composite_cache
        if ($is_global_composite  = 1) {set $use_composite_cache "A";}
        # если переменная персональных условий сайта содержит 1, добавляем признак use_composite_cache
        if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";}
      
        # Подключаем конфиг, который содержит наши стандартные настройки, без  location по умолчанию
        include bx/conf/bitrix_general.conf;
      
        # Основной location
        location / {
       
          # если файл включения композита существует, добавляем признак в use_composite_cache
          if (-f $composite_enabled)     { set $use_composite_cache "${use_composite_cache}C"; }
      
          # если файл кеша существует, добавляем признак в use_composite_cache
          if (-f $composite_file)  { set $use_composite_cache "${use_composite_cache}D"; }
       
          # если все четыре условия выполняются, отправляем запрос в location c кешем
          if ($use_composite_cache = "ABCD") { rewrite .* /$composite_cache last; } 
      	 
           # по дефолту отправляем в apache
          proxy_pass $proxyserver;
        }

    Хранение в memcached

    1. В файле /bitrix/html_pages/.config.php опция STORAGE содержит значение memcached или memcached_cluster.

    2. В конфигурационном файле сайта, который в виртуальном окружении находится в каталоге /etc/nginx/bx/site_enabled, должно быть прописано:
      # устанавливаем параметры подключения для memcached 
        memcached_connect_timeout 1s;
        memcached_read_timeout 1s;
        memcached_send_timeout 1s; 
        # ключ поиска
        set $memcached_key "/${host}${composite_key}/index@${args}.html";
      
        # включен ли композитный кеш
        set $composite_enabled  "${docroot}/bitrix/html_pages/.enabled";
        # переменная, которая используется для проверки работы с композитом при запросе пользователя
        set $use_composite_cache "";
        # учитываем глобальные условия
        if ($is_global_composite  = 1) {set $use_composite_cache "A";}
        # учитываем персональные условия
        if ($is_site_composite_02 = 1) {set $use_composite_cache "${use_composite_cache}B";}
      
        # подключаем общие параметры для bitrix окружения, без использования  default location
        include bx/conf/bitrix_general.conf;
      
        # основной location
        location / { 
           # если данные не найдены в кеше проксируем запрос на apache
          error_page 404 405 412 502 504 = @apache;
       
          # учитываем наличие .enabled файла
          if (-f $composite_enabled)     { set $use_composite_cache "${use_composite_cache}C"; }
      
          default_type text/html;
          # если все совпало, отправляем запрос вmecached
          if ($use_composite_cache = "ABC") {
            add_header Content-Encoding deflate;
            add_header X-Bitrix-Composite "Nginx (memcached)";
            memcached_pass localhost:11211;
          }
          proxy_pass $proxyserver;
        }
      
        location @apache {
          proxy_pass $proxyserver;
        }

      PHP или NGINX?

    После завершения настроек NGINX возникает вопрос: как проверить, через что отдаются страницы - через PHP или NGINX при использовании BitrixVM? Для такой проверки просмотрите заголовки ответа сервера.

    Заголовки при использовании Композита в BitrixVM могут быть такие:

    • X-Bitrix-Composite:Nginx (file) - отдача страниц - NGINX, хранение - файлы;
    • X-Bitrix-Composite:Nginx (memcached) - отдача страниц - NGINX, хранение - memcached;
    • X-Bitrix-Composite:Cache (200) - отдача страниц - PHP, хранение - файлы.

    Сайты с ошибками (Show sites with errors)

    Если по каким-либо причинам на сайтах появились серьезные ошибки: отсутствие модулей на сайте или нет подключения к БД (не получается подключиться с данными настроек сайта), то в меню виртуальной машины появляется пункт меню 6. Manage sites in the pool > 10. Show sites with errors:

    Выбрав этот пункт меню, отобразится список сайтов с кратким описанием ошибки (в данном примере - нет соединения с базой данных mysql):


    Примечание: Пункт меню 6. Manage sites in the pool > 10. Show sites with errors является скрытым и появляется только тогда, когда есть ошибки на сайтах под управлением виртуальной машиной BitrixVM или linux-окружением BitrixEnv. Как только ошибки будут исправлены, данный пункт снова скроется.



    Управление sphinx (Manage sphinx in the pool)

    Использование Sphinx в качестве поискового механизма позволит значительно увеличить скорость поиска и снизит нагрузку на сервер.

    Для его установки необходимо:

    • Установить и обновить проект до последней актуальной версии;
    • В меню виртуальной машины выбрать пункт 7. Manage sphinx in the pool > 1. Create sphinx instance on server:

    • Далее ввести имя хоста, где будет запущен сервер поиска Sphinx (в данном примере server2):

    • Выбрать базу данных ядра системы сайта из списка:

    • Дать согласие на запуск полной переиндексации после установки сервера Sphinx:

    • Подождать, пока задача по установке Sphinx и переиндексации будет закончена:

    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks.


    Примечание: Ручная настройка поискового механизма Sphinx описана в данном уроке.



    Управление веб-серверами (Manage web nodes in the pool)

    В «1C-Битрикс: Виртуальная машина» можно быстро развернуть кластеризацию веб-сервера в «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».

    При разделении проекта на несколько веб-серверов необходимо решить две задачи:

    • синхронизация данных (файлов) между серверами
    • балансировка нагрузки между серверами

    Внимание! Для кластеризации веб-сервера необходим модуль Веб-кластер, который входит не во все редакции продуктов «1С-Битрикс».

  • Создание веб-сервера (Create web instance on server)
  • Удаление веб-сервера (Remove web instance on server)


  • Создание веб-сервера (Create web instance on server)

    Для создания веб-сервера нужно:

    • Выбрать пункт меню 8. Manage web nodes in the pool > 1. Create web instance on server, :

    • Ввести имя хоста в пуле, на котором будет создан веб-сервер (в данном примере - server5):

    • Подождать, пока задача по созданию веб-сервера будет закончена.

    Удаление веб-сервера (Remove web instance on server)

    Для удаления веб-сервера необходимо:

    • Выбрать пункт меню 8. Manage web nodes in the pool > 2. Remove web instance on server.
    • Ввести имя хоста удаляемого веб-сервера (например server1):

    • Подождать, пока задача по удалению веб-cервера будет закончена.
    • В итоге из двух веб-серверов останется один на машине server5:

    Таким образом, мы перенесли веб-сервер с машины server1 на server5, освободив ресурсы машины server1 под другие роли.


    Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks.



    Мониторинг (Monitoring in pool)

    При разворачивании проектов на базе BitrixVM необходимо следить за состоянием сервера и отдельных его компонентов.

    В составе «1C-Битрикс: Виртуальная машина» версии 5.х уже имеются системы мониторинга такие как Munin и Nagios, которые имеют большое количество различных компонентов по отслеживанию функционирования всех систем сервера.

    Для начала работы систем мониторинга необходимо:

    • В главном меню виртуальной машины выбрать пункт 9. Monitoring in pool > 1. Enable monitoring in the pool:

    • Затем мастер сделает необходимые настройки и запустит сервисы мониторинга сервера:

    Для мониторинга сервера из браузера нужно зайти по адресам и авторизоваться под учетными записями мониторинга:

    • Munin - http://адрес_сервера/munin/:
      логин: admin
      пароль: muninBitrixMon

    • Nagios - http://адрес_сервера/nagios/:
      логин: nagiosadmin
      пароль: nagiosBitrixMon

    Примечание: Сменить пароли для систем мониторинга можно с помощью консольных команд:
    • для Munin: htpasswd /etc/munin/passwd admin
    • для Nagios: htpasswd /etc/nagios/passwd nagiosadmin



    Дополнительные настройки BitrixVM

    Внимание! Для операций, описанных в данной главе, необходимы начальные знания администрирования. Перед началом проведения данных операций рекомендуется сделать полный бэкап «Виртуальной машины».

    Изменение стандартных настроек BitrixVM без отключения автоподстройки

    При запуске виртуальной машины BitrixVM или физического сервера с установленным пакетом BitrixEnv сервисом bvat автоматически настраиваются основные параметры Apache, PHP, MySQL в зависимости от количества доступной памяти. Это позволяет обеспечивать оптимальные настройки сервера.

    Но в ряде случаев возникает необходимость изменения некоторых параметров без отключения сервиса bvat. Для внесения таких изменений в настройки сервера предусмотрены специальные конфигурационные файлы, позволяющие переопределять параметры, устанавливаемые сервисом bvat. Они хранятся в директориях:

    • MySQL - /etc/mysql/conf.d/z_bx_custom.cnf
    • Apache - /etc/httpd/bx/custom/z_bx_custom.conf
    • nginx - /etc/nginx/bx/settings/z_bx_custom.conf
    • PHP - /etc/php.d/z_bx_custom.ini

    В случае, если в этих директориях нет конфигурационных файлов, то их можно создать самостоятельно.

    Внимание! Все изменения стандартных конфигурационных файлов Apache, PHP, MySQL и nginx могут быть утрачены во время обновления виртуальной машины BitrixVM/BitrixEnv. Что бы этого не произошло, все переопределяемые параметры должны быть только в файлах z_bx_custom.*, указанных выше для каждого сервиса.



    Увеличение дискового пространства BitrixVM

    Внимание! Для операций, описанных в данной главе, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».

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

    Решить эту проблему можно двумя способами:

    1. добавить в виртуальную машину еще один жесткий диск, смонтировать его в системе и перенести на него часть контента (наиболее оптимальный способ);
    2. увеличить размер существующего виртуального жесткого диска.


    Добавление дополнительного жесткого диска BitrixVM

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».

    Так как основной объем дискового пространства потребляется контентом сайтов и их резервными копиями, расположенными в /home/bitrix, а также БД, расположенной в /var/lib/mysql, то на отдельные диски следует выносить именно эти разделы.

    Рассмотрим данную задачу на примере переноса на отдельный диск папки /home с контентом сайтов и их резервными копиями.

    • Для этого, в настройках виртуальной машины в список оборудования, добавляем новый диск необходимого размера. Все указанные ниже действия необходимо осуществлять под учетной записью администратора root:

    • После добавления диска, для его инициализации, возможно, потребуется перезагрузить сервер. Увидеть новый диск и присвоенное ему буквенное обозначение можно, выполнив команду:
      fdisk -l

    • Запускаем утилиту fdisk для работы с диском /dev/sdb:
      fdisk /dev/sdb

      И командой n создаем новый раздел:

      • основной (primary partition) - команда p и Partition number (1-4): 1;
      • первый и последний сектора при этом выбираем по умолчанию - таким образом, будет создан раздел, используя все свободное пространство на диске:

    • Для сохранения изменений на диск и выхода из fdisk введите команду w.

    • После сохранения таблицы разделов, форматируем новый раздел и переносим на него информацию из /home:
      mkfs.ext4 /dev/sdb1 
      mount /dev/sdb1 /mnt 
      service httpd stop 
      service nginx stop
      mv -f /home/* /mnt 
      umount /mnt
      
    • Следующим шагом определяем UUID нового диска:
      blkid
      /dev/sda1: UUID="99066558-ba04-465c-9962-e827aa2928ec" TYPE="ext4" 
      /dev/sda2: UUID="8ea38ef9-1ee5-423b-a013-15fd603a678e" TYPE="swap" 
      /dev/sda3: UUID="08ec5c65-8fd8-47ac-a998-d81195c8f964" TYPE="ext4" 
      /dev/sdb1: UUID="b2e58731-b621-4bd5-909a-afe3bb5dd8a1" TYPE="ext4"
      

      и добавляем запись (в данном примере: UUID=b2e58731-b621-4bd5-909a-afe3bb5dd8a1) о нем в /etc/fstab (вместо UUID можно также использовать имя устройства /dev/sdb):

    • Остается только примонтировать новый диск и запустить остановленные ранее службы:
      mount /home 
      service httpd start 
      service nginx start 
      

    Добавление дисков в других средах виртуализации или непосредственно на физическом сервере проходит аналогично.



    Увеличение размера существующего жесткого диска BitrixVM

    Вторым способом увеличения дискового пространства в BitrixVM является увеличение размера уже существующего жесткого диска виртуальной машины.

    В данном примере воспользуемся виртуальной машиной BitrixVM для VMWare и покажем, как увеличить размер системного диска до 100Гб.

    1. Для этого необходимо запустить VMWare Player, в списке виртуальных машин выбрать виртуальную машину BitrixVM и нажать Edit virtual machine settings:

    2. В окне устройств выбрать Hard Disk, размер которого нужно увеличить, и активировать в меню Utilities пункт Expand:

    3. В открывшемся окне Expand Disk Capacity в поле Maximum disk size (GB) указать необходимый объем виртуального диска в гигабайтах (в данном примере - 100Гб):

    4. Далее необходимо запустить виртуальную машину BitrixVM, авторизоваться под root и перейти в режим командной строки (консоль), выбрав пункт меню 0. Exit в виртуальной машине.
    5. Смотрим диск и присвоенное ему буквенное обозначение консольной командой:
      fdisk -c -u -l

      где для диска /dev/sda:

      • sda1 - загрузочный сектор диска;
      • sda2 - файл подкачки (swap);
      • sda3 - раздел, в котором установлена операционная система и который как раз и нужно увеличить.


    6. Запускаем утилиту fdisk для работы с диском /dev/sda:
      fdisk -c -u /dev/sda
    7. Командой d удаляем раздел sda3, выбрав Partition number (1-4): 3:

      Внимание! Данные с диска при этом никуда не удаляются, в данном случае удаляется лишь запись о разделе из таблицы разделов диска.

    8. Далее командой n создаем новый раздел:
      • основной (primary partition) - команда p и Partition number (1-4): 3;
      • первый и последний сектора при этом выбираем по умолчанию - таким образом, будет создан раздел, используя все свободное пространство на диске.

    9. Для сохранения обновленной таблицы разделов и выхода из fdisk введите команду w:

    10. Чтобы система подгрузила новую таблицу разделов, необходима перезагрузка виртуальный машины:
      reboot
    11. После перезагрузки с помощью утилиты resize2fs увеличиваем размер файловой системы раздела /dev/sda3:
      resize2fs /dev/sda3

    Проверить, что раздел увеличен можно с помощью команды df:

    Изменение размера дисков в других средах виртуализации проходит аналогично.

    Дополнительно:

    Если нужен диск объёмом более [dw]2 Тб[/dw][di]Утилита fdisk умеет расширять диск не более чем на 2Тб.[/di], это можно сделать так.



    Увеличение размера LVM-раздела BitrixVM

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».

    Внимание! По умолчанию в CentOS 7 устанавливается менеджер логических томов LVM2 при автоматической разбивке диска на этапе установки системы (в случае установки BitrixEnv c помощью скрипта bitrix_env.sh на готовый CentOS 7). В таком случае изменение размера LVM-раздела будет отличаться от предыдущих способов.


    Пусть размер системного диска был увеличен с 20 ГБ до 100Гб, как было сделано ранее в VMWare Player.

    Тогда действия по изменению размера LVM-раздела будут такими:

    1. Смотрим, что в системе на данный момент есть из устройств/разделов командой:
      fdisk -l

    2. Убеждаемся, что место в системе автоматически не увеличилось при помощи команды:
      df -h

      Здесь мы также видим и запоминаем имя группы томов и имя тома (у вас они будут другие):

      • cl - имя группы томов;
      • root - имя тома.

    3. Создаем новый раздел sda3 - тип раздела: Linux LVM (код типа 8e) на неразмеченной области. Для этого начинаем работу с устройством sda c помощью команды:
      fdisk /dev/sda
    4. Далее командой n создаем новый раздел:
      • основной (primary partition) - команда p и Partition number (1-3, default 3): 3 (так как у нас было 2 логических раздела sda1 и sda2 - п.1);
      • первый и последний сектора при этом выбираем по умолчанию - таким образом, будет создан раздел, используя все свободное пространство на диске;
      • укажем тип раздела - команда t и Partition number (1-3, default 3): 3;
      • вводим код типа раздела, соответствующий Linux LVM - 8e;
      • смотрим таблицу разделов - команда p и убеждаемся, что все верно;
      • Раздел sda3 создан. Для сохранения обновленной таблицы разделов и выхода из fdisk - команда w.

    5. Чтобы система подгрузила новую таблицу разделов, необходима перезагрузка виртуальной машины:
      reboot
    6. После перезагрузки необходимо создать физический том sda3:
      pvcreate /dev/sda3
    7. Далее расширяем группу томов на новое пространство, используя имя группы томов cl (которое мы запомнили ранее в п.2):
      vgextend /dev/cl /dev/sda3
    8. Теперь расширим логический том, используя имя тома root (которое мы запомнили ранее в п.2):
      lvextend -l+100%FREE /dev/cl/root
    9. Сканируем диски на предмет наличия групп томов и активируем все найденные группы томов:
      vgscan
      vgchange -ay
      

    10. Узнаем тип файловой системы:
      file -s /dev/sda1

      Видим, что файловая система XFS.

    11. И наконец, расширяем файловую систему XFS (может потребоваться время):
      xfs_growfs /dev/cl/root

      Внимание! Если файловая система не XFS, а, например, ext4 или reiserfs, то команды будут такие (с учетом cl - имя группы томов и root - имя тома из п.2):
      • resize2fs /dev/cl/root - для ext4;
      • resize_reiserfs /dev/cl/root - для reiserfs;

    12. Проверяем итоговый результат:
      df -h



    Добавление ssl-сертификатов в BitrixVM

    Внимание!: Данное решение является «лайвхаком», в версиях BitrixVM/BitrixEnv 7.2 и выше есть полная поддержка пользовательских SSL-сертификатов.


    Предположим у нас есть сайт http://site1.bx, и нам нужно переключить работу сайта на защищенный протокол https.

    Наши действия будут такими:

    1. Сначала вы должны получить SSL-сертификат от центра сертификации, который вы выбираете сами. У вас должны быть файлы:
      • site1.bx.key - приватный ключ домена (созданный вами на этапе отправки заявки на получение сертификата или присланный центром сертификации)
      • site1.bx.crt - публичный сертификат домена (присланный центром сертификации)

    2. Далее загружаем полученные сертификаты от центра сертификации, например, в директорию /etc/nginx/ssl/ с помощью любого менеджера файлов по протоколу sftp (например WinSCP).

    3. Дальнейшие команды выполняются в консоли виртуальной машины BitrixVM/BitrixEnv (0. Exit в главном меню) либо аналогичные действия в менеджере файлов, как удобнее.

    4. При обновлении виртуальной машины BitrixVM/BitrixEnv возможна автоматическая перезапись стандартных файлов nginx, поэтому скопируем файл конфигурации ssl.conf в новый файл site1.bx_ssl.conf (название файла может быть любым). Для удобства, это делается для каждого сайта, если их у вас несколько:
      cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/site1.bx_ssl.conf
      
    5. Затем редактируем файл /etc/nginx/bx/conf/site1.bx_ssl.conf и указываем расположение site1.bx.key (приватный ключ домена) и site1.bx.crt (публичный сертификат домена) в директивах nginx ssl_certificate_key и ssl_certificate соответственно.
      ssl_certificate /etc/nginx/ssl/site1.bx.crt;	# публичный сертификат домена
      ssl_certificate_key /etc/nginx/ssl/site1.bx.key;# приватный ключ домена
      
    6. Открываем файл /etc/nginx/bx/site_avaliable/bx_ext_ssl_site1.bx.conf и ищем в нем строку:
      include bx/conf/ssl.conf;
      
      и меняем на:
      include bx/conf/site1.bx_ssl.conf;
      

      Примечание: Для сайта по умолчанию s1 (который находится в директории /home/bitrix/www) файл будет называться /etc/nginx/bx/site_avaliable/s1.ssl.conf, а для дополнительных сайтов (которые создаются в директории /home/bitrix/ext_www/название_хоста) - /etc/nginx/bx/site_avaliable/bx_ext_ssl_название_хоста.conf.

    7. Проверяем, что конфигурационные файлы nginx без ошибок:
      nginx -t
      
    8. И если все в порядке, перезапускаем nginx:

      CentOS 6:

      service nginx restart
      

      CentOS 7:

      systemctl restart nginx.service
      
    9. Далее можно переключить работу сайта только по протоколу https в меню 6. Mange sites in the pool > 5. Change https settings on site. Как это сделать написано здесь.

    10. И в административном интерфейсе произвести необходимые настройки для контента сайта. Рекомендации прочитать можно здесь.

    Внимание! В случае использования NTLM-авторизации по протоколу https нужно еще также указать пути до SSL-сертификата в файле /etc/httpd/bx/conf/ntlm_bitrix.conf.


    Теперь даже после обновления виртуальной машины BitrixVM/BitrixEnv, если стандартные файлы конфигурации nginx будут изменены, то сайт продолжит работать по протоколу https.



    Подключение Swap-раздела

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».

    Виртуальная машина BitrixVM поставляется с swap-разделом 256 МБ, а в образе ami он по умолчанию не подключен. Поэтому в процессе эксплуатации может возникнуть необходимость в расширении раздела подкачки.

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

    Для этого:

    • подключаем к виртуальной машине диск или создаем файл подкачки:
      dd if=/dev/zero of=/swapfile bs=1M count=1024
      
    • создаем на диске:
      mkswap /dev/sdb1
      
      или в файле swap-раздел:
      mkswap /swapfile
      
    • подключаем раздел подкачки:
      swapon /dev/sdb1
      
      или файл подкачки:
      swapon /swapfile
      
    • и наконец, добавляем запись о новом разделе подкачки в /etс/fstab, чтобы не включать после каждой перезагрузки вручную:
      /dev/sdb1 none swap sw 0 0
      
      или о файле подкачки:
      /swapfile none swap sw 0 0
      


    Дополнительные настройки и отладка msmtp

    Данная информация пригодится для ручной настройки и диагностики ошибок с почтой в Виртуальная машина BitrixVM/BitrixEnv v.5.x.

    Примечание: Для Виртуальная машины BitrixVM/BitrixEnv v7.x никакой ручной настройки, как правило, не требуется. Нужно только создать пул и настроить почту с помощью мастера настройки почты в меню виртуальной машины.

    Изменения в конфигурационных файлах

    В настройке используется пакет msmtp (он идет в стандартных зависимостях для пакета bitrix-env). Из пакета приходят настройки php-модуля в файле /etc/php.d/bitrixenv.ini:

    sendmail_path = msmtp -t -i
    

    При конфигурации из веб-интерфейса или из консольного меню:

    1. создается или обновляется конфигурационный файл /home/bitrix/.msmtprc:
      # smtp account configuration for default
      account default
      logfile /home/bitrix/msmtp_default.log
      host 192.168.0.25
      port 25
      from name@site.ru
      keepbcc on
      auth on
      user name@site.ru
      password XXXXXXXXXXXXXX
      tls on
      tls_certcheck off
      
    2. Аккаунт с именем default используется по умолчанию для всех сайтов. Если настраивается почтовый ящик для сайта, отличного от default, то вносятся изменения в конфигурационный файл apache (конфигурационный файл сайта):
        <Directory /home/bitrix/www/> 
              ...     
              php_admin_value sendmail_path "msmtp -t -i -a <ИМЯ_САЙТА>" 
       </Directory> 
      
    3. создается символическая ссылка с /home/bitrix/.msmtprc на /etc/msmtprc (данное действие необходимо для заданий отправки почты, которые выполняются через crontab).

    Используемые скрипты

    Данные рекомендации будут полезны для автоматизации тестирования.

    Для создания из web или консоли используется скрипт /opt/webdir/bin/bx-sites.

    При настройке почты он принимает следующие параметры:

     bx-sites -o json -a email --smtphost=smtp.yandex.ru \
      --smtpuser='ivan@yandex.ru' --password=XXXXXXXXXX \
      --email='ivan@yandex.ru' --smtptls -s alice
    
    где:
    • -a email - тип действия, которое мы выполняем для сайта (-h позволит получить весь доступный список);
    • --smtphost - IP адрес или DNS имя хоста, через который будет отправляться почта;
    • --smtpuser - логин пользователя (в случае, если не используется данный параметр, можно опустить);
    • --password - пароль для авторизации на почтовом сервере;
    • --email - поле from в письме;
    • --smtptls - включает TLS при отправке почты;
    • -s|--site - название сайта (по умолчанию будет использован default).

    Проблемы и их решение

    В разделе описаны найденные и решенные проблемы, а также способы отладки почтовых проблем.

    1. msmtp ведет лог отправки уведомлений. Например, в логе можно найти информацию, почему письмо не ушло:

      Сен 04 14:41:11 host=smtp.yandex.ru tls=on auth=on user=bx@ya.ru from=bx@ya.ru recipients=3458@gmail.com smtpstatus=554  
      smtpmsg='554 5.7.1 Message rejected under suspicion of SPAM adxPcTaXWc-fB4SvmKU' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE 
      
    2. msmtp не пишет информацию, если не смог запустится или конфигурация некорректна. Запускаем отправку из консоли (меняем адрес получателя на свой):
      echo -e "test message" | /usr/bin/msmtp --debug -t -i name@site.ru
      
      тут может быть ошибка, например, загрузки конфигурации:
      ignoring system configuration file /etc/msmtprc: Нет такого файла или каталога
      ignoring user configuration file /.msmtprc: Нет такого файла или каталога
      falling back to default account
      

      В данном случае, ни один из файлов конфигурации не был найден, поэтому отправка не удалась.

    3. если в п.2 все хорошо и письма все еще не ходят:
      • Поместить данный скрипт test_email.sh в каталог /usr/bin/ и выставить права на исполнение:
        #!/bin/bash
        export HOME=/home/bitrix
        
        tmp_dir=/tmp/mail
        
        args=$@
        if [[ ! -d $tmp_dir ]]; then
                mkdir $tmp_dir
                chmod 777 $tmp_dir
        fi
        
        message_body=""
        while read line; do
          message_body="$message_body$line\n"
        done < /dev/stdin
        
        tmp_file=$(mktemp $tmp_dir/$(date +%Y%m%d_%H%M%S)_XXXXXXXXX)
        
        echo "=========================================" > $tmp_file
        echo "ARGV: /usr/bin/msmtp --debug -t -i $args" >> $tmp_file
        echo "=========================================" >> $tmp_file
        echo -e "BODY: $message_body" >> $tmp_file
        echo "=========================================" >> $tmp_file
        
        # send message
        echo -e "$message_body" | /usr/bin/msmtp --debug -t -i $args >> $tmp_file && 2>&1
        
      • В конфигурации /etc/php.d/bitrixenv.ini изменить настройки почты:
        sendmail_path = /usr/bin/test_email.sh
        
      • Перезапустить apache.
      • Данный скрипт запускает msmtp с опцией debug и по каждому отправленному письму сохранит информацию о параметрах отправки, о теле письма, а также о результатах запуска команды.

        При создании письма из web-интерфейса вся информация сохраняется в каталоге /tmp/mail, каждое письмо будет сохранено в отдельном файле.


    Проблема:
    Не отправляются письма уведомлений о заказах с сайта, статистика за день в BitrixVM v5.0.44-5.0.45.

    Решение:
    Причина в том, что домашний каталог скриптов выставлен в HOME=/, поэтому письма, отправка которых происходит из задания в Cron, не отправляются.
    Для решения необходимо:
    • либо создать символическую ссылку с /home/bitrix/.msmtprc на /etc/msmtprc - конфигурационный файл /etc/msmtprc является системным файлом для утилиты и позволяет решить нахождение конфигурационного файла при таком параметре HOME.
    • либо обновить BitrixVM до версии 5.0.46 и выше.

    Проблема:
    Не отправляется почта по Cron-у, хотя символическая ссылка с /home/bitrix/.msmtprc на /etc/msmtprc есть.

    Решение:
    Проблема может быть в том, что для Cron не установлено правильное значение переменной PATH.
    Для решения необходимо:
    1. Зайти по ssh под логином bitrix и в консоли выполнить команду:
      >echo $PATH
      
    2. Получите ответ вида:
      /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/bitrix/bin
      
    3. Далее в файле Cron добавить первой строкой:
      PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/bitrix/bin
      


    Корректное монтирование Windows-ресурсов

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».


    В случае необходимости подключения сетевого диска Windows в качестве хранилища для WebDAV можно воспользоваться следующей командой:

    mount -t cifs -o -fstype=cifs,iocharset=utf8,username=XXXX,password=XXXX,uid=500,gid=501,fmode=0777,noserverino //xxx.xxx.xxx.xxx/folder /home/bitrix/www/docs/folder/smb
    
    где:
    • uid - идентификатор пользователя bitrix;
    • gid - идентификатор группы bitrix;
    • //xxx.xxx.xxx.xxx/folder - путь к сетевому ресурсу;
    • /home/bitrix/www/docs/folder/smb - папка, куда будет смонтирован диск.

    Примечание: Использование опции noserverino является обязательным, так как в PHP есть уязвимость.


    Настройка отправки Nagios-уведомлений в BitrixVM 5.1.3

    Внимание! Данный способ актуален для BitrixVM до версии 5.1.3. В версии BitrixVM 5.1.4 и выше была добавлена возможность настроить email-уведомления для системы мониторинга Nagios. Данная настройка осуществляется в меню настройки мониторинга.

    Внимание! Для отправки уведомлений Nagios-ом на email необходимо предварительно включить в меню BitrixVM Мониторинг (Monitoring in pool).


    Итак, чтобы получать уведомления Nagios-а о различных событиях сервера, нужно настроить контакты и шаблон уведомлений:

    1. В /etc/nagios/objects/contacts.cfg указываем параметр email - email пользователя, кому будет отправляться нотификация:
      define contact{
      	contact_name	nagiosadmin		; Short name of user
      	use			generic-contact		; Inherit default values from generic-contact template (defined above)
      	alias		Nagios Admin		; Full name of user
      	email		email@myaddress.com	; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
      	}
      

      Примечание: Можно создать новый контакт, но не забудьте прописать его в секции CONTACT GROUPS в этом же файле. Как это сделать см. в документации Nagios.

    2. Далее в /etc/nagios/objects/commands.cfg меняем строки в секции SAMPLE NOTIFICATION COMMANDS запуска MTA на:
      # 'notify-host-by-email' command definition
      define command{
         command_name   notify-host-by-email
         command_line   /usr/bin/printf "%b" "Subject: ** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **\n\n ***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/msmtp --host=hostname --port=number --user=username --passwordeval=eval --from=mailfrom@email.com $CONTACTEMAIL$   
         }
      
      # 'notify-service-by-email' command definition
      define command{
         command_name   notify-service-by-email
         command_line   /usr/bin/printf "%b" "Subject: ** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **\n\n ***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/msmtp --host=hostname --port=number --user=username --passwordeval=eval --from=mailfrom@email.com $CONTACTEMAIL$   
         } 
      
      где:
      • --host=hostname - адрес smtp-сервера;
      • --port=number - порт smtp-сервера;
      • --user=username - логин для авторизации на smtp-сервере;
      • --passwordeval=eval - пароль для авторизации на smtp-сервере;
      • --from=mailfrom@email.com - от кого будет уходить письмо.

      Примечание: Также можно настроить дополнительные ключи msmtp (TLS-опции и др.), список всех ключей msmtp можно посмотреть консольной командой: msmtp --help.

    3. Обязательно сделать рестарт Nagios для применения настроек:
      service nagios restart

    Т.е, по сути, в конфигурационном файле Nagios мы меняем MTA с mail на msmtp c ключами и немного модифицируем текст сообщения: т.к у msmtp нет ключа Subject: (Тема сообщения), то мы его включаем в тело письма, и оно при получении почтовым клиентом обработается корректно.


    Проверить работу нотификаций можно, например, остановив МySQL:

    service mysqld stop

    По умолчанию Nagios будет записывать в лог 3 сообщения со статусом CRITICAL\SOFT каждую минуту, а 4-му сообщению даст статус CRITICAL\HARD. Далее будет инициирована команда notify-service-by-email, которая отправит текст сообщения через msmtp c ключами, настроенными выше. В итоге, в течение 4-5 минут сообщение примерно такого содержания должно уйти на почту:

    Subject: ** PROBLEM Service Alert: test1/MySQL: connection to 3306 is CRITICAL ** 
    
     ***** Nagios *****
    
    Notification Type: PROBLEM
    
    Service: MySQL: connection to 3306
    Host: server1
    Address: 192.168.2.130
    State: CRITICAL
    
    Date/Time: Tue Jan 27 20:15:15 MSK 2015
    
    Additional Info:
    
    Connection refused
    
    

    После запуска службы MySQL командой # service mysqld start должно прийти сообщение на почту:

    Subject: ** RECOVERY Service Alert: server1/MySQL: connection to 3306 is OK **
    
     ***** Nagios *****
    
    Notification Type: RECOVERY
    
    Service: MySQL: connection to 3306
    Host: server1
    Address: 192.168.2.130
    State: OK
    
    Date/Time: Wed Jan 28 12:30:50 MSK 2015
    
    Additional Info:
    
    TCP OK - 0.001 second response time on port 3306
    

    Примечание: Подробнее о email уведомлениях можно прочитать в в документации Nagios.



    Выполнение всех агентов на Cron

    На больших и не очень проектах часто возникает вопрос с переносом исполнения некоторых особо тяжелых агентов на Cron.

    • Для начала полностью отключим выполнение агентов на хите. Для этого необходимо выполнить команду в php-консоли административного меню продукта «1С-Битрикс» /bitrix/admin/php_command_line.php?lang=ru:
      COption::SetOptionString("main", "agents_use_crontab", "N"); 
      echo COption::GetOptionString("main", "agents_use_crontab", "N"); 
      
      COption::SetOptionString("main", "check_agents", "N"); 
      echo COption::GetOptionString("main", "check_agents", "Y");
      

      В результате выполнения должно быть NN.

    • Убираем из файла /bitrix/php_interface/dbconn.php определение следующих констант:
      define("BX_CRONTAB_SUPPORT", true);
      define("BX_CRONTAB", true);
      

      И добавляем:

      if(!(defined("CHK_EVENT") && CHK_EVENT===true))
         define("BX_CRONTAB_SUPPORT", true);
       
    • Далее создаем файл проверки агентов и рассылки системных сообщений /bitrix/php_interface/cron_events.php:
      <?
      $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../..");
      $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
      
      define("NO_KEEP_STATISTIC", true);
      define("NOT_CHECK_PERMISSIONS",true); 
      define('CHK_EVENT', true);
      
      require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
      
      CMain::FinalActions();
      
      @set_time_limit(0);
      @ignore_user_abort(true);
      
      CAgent::CheckAgents();
      define("BX_CRONTAB_SUPPORT", true);
      define("BX_CRONTAB", true);
      CEvent::CheckEvents();
      ?>
      
    • И добавляем данный скрипт в Cron:
       */5 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
      

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


    Чтобы не увеличивалась очередь отправки почтовых сообщений, нужно изменить параметр, отвечающий за количество почтовых обрабатываемых за раз событий. Для этого выполняем в php-консоли следующую команду:

    COption::SetOptionString("main", "mail_event_bulk", "20"); 
    echo COption::GetOptionString("main", "mail_event_bulk", "5");
    


    Опции монтирования

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».


    Для обеспечения более высокой производительности файловой системы рекомендуем отключать изменение метки времени при чтении файлов и директорий: noatime, nodiratime.

    Для этого в /etc/fstab нужно отредактировать (добавить в текущую строку) параметры в строке со своим UUID:

    UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 /    ext4    defaults,noatime,nodiratime    1 1
    
    где UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 - уникальный идентификатор диска, который можно узнать в консоли по команде blkid.

    Примечание: Вместо UUID можно также использовать имя устройства: /dev/sda1, /dev/sda2, /dev/sda3. Или метку тома если она задана, например: LABEL=root.

    После перезагрузки новые настройки начнут действовать.

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

    mount -o remount,noatime,nodiratime /
    

    Примечание: К решению проблемы производительности файловой системы нужно подходить творчески. Если, например, на диске есть еще кеш некоторых приложений, то от предложенных мер производительность может снизиться, так как многие приложения очищают кеш по метке доступа, которые в примере предлагается отключить. В некоторых случаях увеличение времени коммита может дать лучший результат, особенно если много оперативной памяти. Время коммита задается параметром commit. Для установки его в 120 секунд, например, необходимо добавить commit=120. То есть набор опций монтирования будет defaults,noatime,commit=120.

    По умолчанию сброс данных и метаданных на диск происходит каждые 5 сек. Откладывание времени сброса, так же может уменьшить фрагментацию файлов на диске, если есть файлы, в которые часто происходит дописывание данных. Например логи.


    Подключение IDE

    Для упрощения работы с Bitrix Framework в виртуальную машину включён Xdebug. Работает он по схеме:

    Перед изменением настроек надо переименовать файл xdebug.ini.disabled в xdebug.ini и перезапустить httpd.

    Для настройки машины воспользуйтесь следующим примером:

    $ cat /etc/php.d/xdebug.ini
    ; Enable xdebug extension module
    zend_extension=/usr/lib/php/modules/xdebug.so
    xdebug.remote_enable=on
    xdebug.remote_host=192.168.205.1
    xdebug.remote_port=9000

    Примечание: Xdebug требует использовать proxy при работе через Network Address Translation, необходимо открыть порт 9000.


    BitrixVM API для провайдеров

    В главе описывается API, с помощью которого можно подключить процедуру заказа/создания машины управления пулом в продуктах «1С-Битрикс».



    Провайдеры

    Вся работа с провайдерами осуществляется с помощью плагинов, расположенных в определенном каталоге (на текущий момент все управление сделано на файлах): /opt/webdir/providers.

    Для каждого провайдера предусмотрены:

    • обязательные параметры командной строки для универсализации доступа к их возможностям;
    • стандартизированный вывод по завершению обработки результатов.

    Скрипт плагина, который будет использован в web-интерфейсе продуктов «1С-Битрикс», должен быть раcположен по адресу:

    /opt/webdir/providers/{provider_name}/bin/{provider_name}

    Для подключения в пул плагин провайдера должен поддерживать следующие аргументы командной строки:

    • help - отображает поддерживаемые аргументы командной строки:
      {
        "options": [
          "help",
          "configs",
          "order",
          "order_status"
        ],
        "status": "enabled"
      }
      

      Массив options должен содержать список поддерживаемых опций (например, в данном случае отсутствует опция init, которая позволяет подключиться на этапе создания мастер сервера).

      Опция status может содержать следующие значения: disabled или enabled, что позволяет определить включен или выключен провайдер на конкретном сервере.

    • configs - отображает список поддерживаемых конфигураций:
      {
        "configurations": [
          {
            "id": "1",
            "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb"
          }
        ],
        "status": "enabled"
      }
      

      configurations - содержит список сервисов/конфигураций, которые может заказать пользователь, используя web интерфейс «1С-Битрикс».

      На текущий момент поддерживается два параметра по каждой конфигурации:

      • id - идентификатор конфигурации, который будет использован в заказе,
      • descr - описание для пользователя.
    • order - позволяет заказать сервер/VPS выбранной конфигурации, вторым параметром в данном случае будет передан номер конфигурации:
      {"task_id":"24"}
      

      task_id должен содержать номер задания, который используется для дальнейшего опроса и старта добавления машины по завершению.

    • order_status - позволяет получить информацию по заказу:
      {
        "server_password": "XXXXXXXXXXXXXX",
        "status": "finished",
        "server": "xxx.xxx.xxx.xxx",
        "task_id": "24"
      }
      
      где:
      • status - содержит информацию по заказу, может содержать следующие значения:
        • in_progress - находится на обработке со стороны провайдера/хостера;
        • finished - обработка завершена, можно добавлять машину в пул;
        • error - во время выполнения произошла ошибка.
      • server - содержит ip address или имя машины;
      • server_password - содержит пароль пользователя root для копирования ssh-ключей при подключение сервера в пул.

      Любое из действий может сообщить об ошибке с помощью значений в полях error и error_message. Например:

      {
        "error_message": "get_task error N102, No task found",
        "error": 1
      }
      

    Внимание! Информацию о работе скрипта, который использует возможности провайдеров и позволяет подключить их в web- интерфейс, см Скрипт работы с провайдерами.



    Скрипт работы с провайдерами

    Данный скрипт нужен для встраивания плагинов провайдеров в web- интерфейс продуктов «1C-Битрикс».

    На текущий момент реализованы следующие методы:

    • list - отображает список всех провайдеров, для которых существуют подкаталоги в директории /opt/webdir/providers на машине:
      {
        "params": {
          "providers": {
            "superprovider": {
              "status": "enabled"
            },
            "amazon": {
              "error": 1,
              "message": "bxProvider::optionsProvider: Provider amazon not exist on the host"
            }
          }
        }
      }
      

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

      В случае если провайдеров нет на хосте, список будет пустым:

      {
        "params": {
          "providers": {
            
          }
        }
      }
      
    • status - покажет статус для провайдера:
      /opt/webdir/bin/bx-provider -a status --provider superprovider -o json
      {
        "params": {
          "provider_options": {
            "superprovider": {
              "options": {
                "order_status": 1,
                "order": 1,
                "help": 1,
                "configs": 1,
                "init": 0
              },
              "status": "enabled",
              "files": {
                "execute": "/opt/webdir/providers/superprovider/bin/superprovider",
                "holder": "/opt/webdir/providers/superprovider",
                "config": "/opt/webdir/providers/superprovider/etc/superprovider.conf"
              },
              "name": "superprovider",
              "config": "exists"
            }
          }
        }
      }
      

      В данном случае печатает внутреннюю информацию (используется как есть внутри обработчика), по сути, такой статус больше подходит для отладки работы провайдера, чем для использования в web-интерфейсе.

    • install и uninstall - создает/удаляет данные для провайдера (на текущий момент больше для отладки, возможно, в дальнейшем с помощью этих методов хостеры смогут установить свой плагин на сервер и удалить его):
      /opt/webdir/bin/bx-provider -a install --provider amazon --archive /tmp/amazon-v01.tar.gz
      
    • configs - отображает список всех конфигураций провайдера:
      /opt/webdir/bin/bx-provider -a configs --provider superprovider -o json
      {
        "params": {
          "provider_configs": {
            "superprovider": {
              "configurations": [
                {
                  "id": "1",
                  "descr": "Bitrix-env, 1 month, Centos-6 x86_64, CPU 2x1.0 Ghz, Memory 1Gb, HDD 20Gb"
                }
              ],
              "status": "enabled"
            }
          }
        }
      }
      
    • order - заказывает виртуальный сервер или VPS:
      /opt/webdir/bin/bx-provider -a order --provider superprovider --config_id 1 -o json
      {
        "params": {
          "provider_order": {
            "superprovider": {
              "task_id": "25"
            }
          }
        }
      }
      
    • order_status - отображает статус заказа:
      /opt/webdir/bin/bx-provider -a order_status --provider superprovider --task_id 25 -o json 
      {
        "params": {
          "provider_order": {
            "superprovider": {
              "server_password": "XXXXXXXXXXXXXXX",
              "status": "complete",
              "server": "xxx.xxx.xxx.xxx"
              "task_id": "25"
            }
          }
        }
      }
      
    • orders_list - список всех заказов, сделанных на хосте:
      /opt/webdir/bin/bx-provider -a orders_list --provider superprovider -o json
      {
        "params": {
          "provider_order_list": {
            "superprovider": {
              "25": {
                "status": "finished",
                "mtime": 1403445981,
                "error": 0,
                "message": ""
              },
              "22": {
                "status": "error",
                "mtime": 1403441000,
                "error": 1,
                "message": "cannot add ssh key to the server"
              },
              "21": {
                "status": "complete",
                "mtime": 1403440979,
                "error": 0,
                "message": ""
              },
              "23": {
                "status": "finished",
                "mtime": 1403441229,
                "error": 0,
                "message": ""
              }
            }
          }
        }
      }
      

      Тут добавлен еще один статус по задаче: complete - это значит, что сервер из данного задания был добавлен в пул.

    • order_to_host - запускает процедуру добавления сервера в пул с параметрами, переданными в статусе заказа:
      /opt/webdir/bin/bx-provider -a order_to_host --provider superprovider --task_id 25 -o json
      


    Виртуальная машина BitrixVM v4.3 (архив)

    Внимание! BitrixVM версии 4.x устарела и не поддерживается. Актуальная версия BitrixVM - 7.х, информацию о которой можно найти здесь.


    «1C-Битрикс: Виртуальная машина» - бесплатный программный продукт, готовый к немедленному использованию виртуальный сервер, полностью настроенный, протестированный и адаптированный для оптимальной работы как с продуктами «1С-Битрикс», так и с любыми PHP-приложениями. Имеется в версии для Windows и для Unix систем.

    Виртуальная машина сэкономит вам время и силы на правильное развертывание и администрирование вашего сайта или внутреннего информационного ресурса на базе продуктов «1С-Битрикс».

    Глава предназначена для администраторов и пользователей продуктов «1С-Битрикс», устанавливающих для ознакомления либо переносящих готовые проекты на виртуальную машину BitrixVM. Аналогичным способом можно переносить проекты с удаленного сайта на виртуальную машину, между виртуальными машинами и т.д. В документе рассматриваются процедуры установки всех необходимых приложений для работы продукта на виртуальной машине BitrixVM.

    Описание установки VMWare Player не входит в данное руководство. По всем вопросам установки этой программы обращайтесь к документации VMWare.

    Если у вас возникнут вопросы по процессу установки продуктов компании «1С-Битрикс», вы можете обратиться в службу Технической поддержки. Обсуждение работы BitrixVM доступно на специализированном форуме или в группе Виртуальные машины Битрикс социальной сети компании «1С-Битрикс».

    Внимание! Все названия хостов, адреса e-mail, серверов, ip-адреса и т.п информация в учебном курсе указываются в качестве примера. Поэтому при настройке виртуальной машины необходимо использовать свои данные.



    Введение

    «1C-Битрикс: Виртуальная машина» разворачивается за минуты и сразу же готова к работе. На неё можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести свои, уже готовые проекты. Перенос сайта возможен напрямую с сервера на машину.

    «1C-Битрикс: Виртуальная машина» эмулирует работу реального компьютера. Продукт включает в себя сконфигурированную операционную систему, веб-сервер, базу данных, firewall, почтовый сервер, а также большое число настроек, от которых зависит надежность, производительность и безопасность веб-проекта.

    BitrixVM постоянно совершенствуется и обновляется. О текущем составе машины смотрите на соответствующих страницах сайта компании «1С-Битрикс».

    По умолчанию для суперпользователя root установлен пароль bitrix, для пользователя bitrix - bitrix.

    Важно! Обязательно смените пароли при первом запуске виртуальной машины.

    Технические требования для запуска BitrixVM с использованием VMWare Player

    Для работы с виртуальной машиной система должна соответствовать следующим техническим требованиям:

    • ОС: Windows XP, Vista, 7, Server 2003, Server 2008 (x86/x64); Linux (x86/x64);
    • VMWare Player;
    • Минимальное место на диске: 2 Гб;
    • Минимально допустимый размер оперативной памяти: 160 Мб;
    • Рекомендованный размер оперативной памяти: 256 Мб и выше.


    Запуск виртуальной машины BitrixVM

    • Скачайте и установите VMWare Player - бесплатный продукт, работающий под ОС Windows или Linux.

      Примечание: Описание установки VMWare Player не входит в данное руководство. По всем вопросам установки этой программы обращайтесь к документации VMWare.

    • Загрузите дистрибутив настроенной виртуальной машины BitrixVM.
    • Скачанный архив распакуйте в любую папку, например, С:\VMBitrix\BitrixVM\.
    • Запустите VMWare Player. Нажмите кнопку Open a Virtual Machine и укажите путь к файлу BitrixVM.vmx, который был распакован в каталог С:\VMBitrix\BitrixVM\. Виртуальная машина появится в списке добавленных.
    • Выберите в списке нужную виртуальную машину и нажмите кнопку Play Virtual Machine:

    • Начнется процесс загрузки операционной системы, установленной на виртуальной машине. В конце загрузки откроется окно:

    • Примечание: Для суперпользователя root по умолчанию задан пароль bitrix.

      При первом запуске виртуальной машины будет предложено сменить пароли суперпользователя root и пользователя bitrix:

      • В строках localhost login укажите текущий логин (root), а в поле Password пароль (по умолчанию bitrix).
      • В строке (current) UNIX password укажите текущий пароль (bitrix) и нажмите Enter.
      • Введите новый пароль в строке Enter new UNIX password и нажмите Enter.
      • Повторите ввод нового пароля в строке Retype new UNIX password и нажмите Enter.

      Аналогично происходит смена пароля пользователя bitrix:

      Примечание: Cменить пароли пользователей root и bitrix также можно в панели управления виртуальным сервером с помощью команды Change root password и Change bitrix password соответственно.

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

    Основные функции администрирования перечислены в списке Available actions:

    • 0. Virtual appliance information - выводит информацию о текущих настройках виртуальной машины;
    • 1. Mail sending system parameters - настройка параметров интегрированного почтового сервера;
    • 2. Disable/Enable HTTP access (HTTPS only) - выключение/включение доступа к сайту только через HTTPS;
    • 3. Change root password - смена пароля суперпользователя;
    • 4. Change bitrix password - смена пароля пользователя bitrix;
    • 5. Virtual server reboot - перезагрузка виртуального сервера;
    • 6. Virtual server shutdown - выключение виртуального сервера;
    • 7. Get a new IP address via DHCP - получение нового IP-адреса автоматически с помощью DHCP-сервера;
    • 8. Asign a new IP address (manual) - установка нового IP-адреса вручную;
    • 9. Set PHP timezone from Operating System setting - установка часового пояса в виртуальной машине из настроек операционной системы;
    • 10. Create master node - создание мастера для веб-кластера;
    • 11. Add slave node - добавление слэйва к мастеру веб-кластера (***доступно при заходе на машину-мастер);
    • 12. Make slave node a master node - переключение слейва в режим мастера (***доступно при заходе на машину-слэйв);
    • 13. Add additional site - добавление сайта в режиме многосайтовости на разных доменах;
    • 14. Delete additional site - удаление сайта в режиме многосайтовости на разных доменах;
    • 15. NTLM authentication - включение NTLM-авторизации;
    • 16. Start/Stop server monitoring - включение/выключение мониторинга сервера;
    • 17. Start/Stop site backup - включение/выключение резервного копирования данных сайта;
    • 18. Sphinx search server - настройка поискового сервера Sphinx.
    • 19. Update System - обновление виртуальной машины.

    Для перехода к выполнению любого действия введите число (от 0 до 19) и нажмите Enter. Например, для выключения виртуального сервера в строке наберите 6 (Virtual server shutdown) и нажмите Enter.

    Чтобы вернуться в вашу ОС, нажмите Ctrl+Alt.

    Чтобы вернуться из shell в меню виртуальной машины, введите команду:

    /root/menu.sh

    Примечание: При возникновении проблем с сетевым адаптером VMWare Player необходимо перейти в настройки сетевого адаптера (Virtual Machine > Removable Devices > Network Adapter > Settings...), выбрать один из режимов (Bridged, NAT, Host-only):

    и перезапустить виртуальный сервер, указав команду 5 и нажав Enter.


    Далее необходимо набрать полученный IP-адрес в браузере (в нашем примере это http://192.168.1.170 или https://192.168.1.170). Откроется страница с выбором варианта работы:


    Для продолжения необходимо выбрать один из вариантов:

    1. Новая установка - в этом случае будет запущен мастер, который позволяет скачать, установить и создать новый сайт средствами продуктов компании «1C-Битрикс». Шаги этого варианта аналогичны шагам, рассмотренным в главе Установка продукта с помощью BitrixSetup.
    2. Восстановить проект - в этом случае будет запущен мастер, с помощью которого можно будет перенести существующий проект (восстановить проект из резервной копии). Шаги этого варианта аналогичны шагам, рассмотренным в главе Перенос продукта.

    Настройка почтового сервера

    Для настройки интегрированного почтового сервера выполните следующее:

    • В строке Type a number and press ENTER наберите команду 1 (Mail sending system parameters) и нажмите Enter:

    • В строке ниже отобразится диалог Mail sending subsystem settings, в котором укажите следующее:

      • SMTP server name - имя почтового сервера.
      • SMTP port - порт сервера. Порт зависит от типа соединения, 25 - для обычного и 465 - для зашифрованного (с использованием SSL). Если нажать Enter, то будет использован порт по умолчанию (25).
      • Default sender address - адрес отправителя, от которого будет осуществляться пересылка писем.
      • Если необходима SMTP-авторизация, то в строке SMTP authorization required наберите y, в противном случае - n.
      • Если необходим TLS-протокол защищенной передачи данных, то в строке Is TLS required? наберите y, в противном случае - n.

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

    • Для сохранения параметров в строке Save changes укажите y.

    Примечание: Адреса e-mail и smtp-сервера указаны в качестве примера, вместо них нужно указывать свои значения.


    Создание кластера master-slave

    В «1C-Битрикс: Виртуальная машина» также есть поддержка быстрого развертывания кластерной конфигурации master-slave «1С-Битрикс: Управление сайтом» и «1С-Битрикс: Корпоративный портал» с установленным модулем «Веб-кластер».

    Это позволит распределить один сайт на несколько серверов, решая тем самым несколько задач:

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


    Подготовка виртуальной машины для включения в кластер

    Для подготовки виртуальной машины для включения в кластер необходимо:

    • сменить стандартный пароль пользователя root;
    • сменить стандартный пароль пользователя bitrix;
    • если виртуальная машина будет добавляться в кластер в качестве slave-ноды, необходимо удалить базу данных с тем же именем, что рабочая база данных на master-ноде (по умолчанию это sitemanager0).

    Создание master-ноды

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

    Для этого:

    • выполнить подготовку виртуальной машины;
    • установить на виртуальную машину «1С-Битрикс: Управление сайтом» или «1С-Битрикс: Корпоративный портал» с модулем «Веб-кластер»;
    • перевести все таблицы базы данных в InnoDB (если они используют другой механизм);
    • из административного меню «1C-Битрикс: Виртуальная машина» запустить мастер создания master-ноды - 10. Create master node

      В мастере потребуется указать:

      1. Hostname - доменное имя ноды кластера;
      2. Current mysql root password - пароль пользователя root базы данных;
      3. Select database - выбрать базу данных, которая будет участвовать в репликации;

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

    После настройки master-ноды будет предложено создать slave-ноду - можно согласиться, а можно отказаться и создать slave-ноду позже .


    Создание slave-ноды

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

    • заранее выполнить подготовку виртуальной машины для slave-ноды;
    • подключиться к консоли master-ноды и выбрать в меню пункт 11. Add slave node (либо после создания master-ноды согласиться на создание slave-ноды):

      Здесь потребуется указать:

      1. Hostname - доменное имя для slave-ноды кластера;
      2. IP - ip-адрес slave-ноды;
      3. Slave node root password - пароль root от slave-ноды;
      4. Current mysql slave node root password - пароль root от mysql на slave-ноде;
      5. Master mysql root password - пароль root от mysql на master ноде.

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

    После добавления slave-ноды мы получаем полноценный кластер. При росте нагрузки на проект можно добавить дополнительную slave-ноду в кластер аналогичным образом. Тем самым обеспечить стабильность работы проекта при любом росте нагрузки:


    Падение нод в кластере

    В случае падения одной или нескольких slave-нод проект будет по-прежнему стабильно работать.


    Если же упадет master-нода, то для восстановления работоспособности кластера необходимо:

    • сменить роль одной из slave-ноды на master. Для этого достаточно запустить мастер 12. Make slave node a master node и указать пароли к MySQL root для всех оставшихся в кластере нод:

    • и после его работы скорректировать список нод в модуле Веб-кластер.



    Добавление дополнительного сайта

    Мастер создания дополнительных сайтов, позволяет развернуть на одной виртуальной машине несколько сайтов, как на независимых установках «1С-Битрикс», так и в рамках многосайтовости.


    Добавление дополнительного сайта

    Для добавления дополнительного сайта необходимо:

    • Предварительно настроить DNS-сервер или указать доменное имя в /etc/hosts на виртуальной машине, а также на всех машинах, с которых будет осуществляться доступ к данному сайту.
    • Далее из административного меню запустить мастер 13. Add aditional site:

      и указать:
      1. Website address, without www - доменное имя дополнительного сайта без www;
      2. Directory name for website files - имя директории, в которой будут хранится файлы дополнительного сайта (директория будет создана в /home/bitrix/ext_www/);
      3. Specify the website charset - кодировку создаваемого сайта;
      4. Create symbolic links to existing Bitrix kernel - создание символических ссылок на установленное ядро «1С-Битрикс»:
        • N - в случае создания дополнительного сайта в рамках отдельной установки. В данном случае необходимо создать базу данных. Для этого потребуется указать имя новой базы данных, логин и пароль пользователя MySQL, обладающего необходимыми правами.
        • Y - в случае создания дополнительного сайта в рамках многосайтовости. В данном случае необходимо указать полный путь к ранее установленному продукту «1С-Битрикс».

    Новый дополнительный сайт доступен для использования.

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


    Удаление дополнительного сайта

    Для удаления записи о дополнительном сайте необходимо в административном меню «1C-Битрикс: Виртуальная машина» выбрать пункт 14. Delete aditional site.

    Примечание: Мастер удаления дополнительного сайта не удаляет директорию с файлами и базу данных дополнительного сайта, он удаляет только конфигурационный файл в «1C-Битрикс: Виртуальная машина». Удаление директории с файлами и базу данных сайта необходимо сделать вручную.


    Мониторинг сервера

    При разворачивании проектов на базе BitrixVM необходимо следить за состоянием сервера и отдельных его компонентов.

    «1C-Битрикс: Виртуальная машина» версии 4.х поставляется с системами мониторинга такие как Munin и Nagios, которые имеют большое количество различных компонентов по отслеживанию функционирования всех систем сервера.

    Для начала работы систем мониторинга необходимо:

    • В меню виртуальной машины выбрать пункт 16. Start/stop server monitoring и согласиться на запуск мониторинга:

    • Далее задать:
      • логин и пароль для Munin;
      • пароль для Nagios (логин по умолчанию: nagiosadmin);
      • e-mail Администратора, куда будут высылаться уведомления.

    • Затем мастер сделает необходимые настройки и запустит сервисы мониторинга сервера:

    Для мониторинга сервера из браузера нужно зайти по адресам и авторизоваться под созданными ранее учетными записями мониторинга:

    • Munin - http://адрес_сервера/munin/:

    • Nagios - http://адрес_сервера/nagios/:


    Автоматическое создание резервной копии

    При разворачивании проектов на базе BitrixVM, часто встает задача создания резервной копии проекта по расписанию.

    В «1C-Битрикс: Виртуальная машина» версии 4.х появился функционал автоматического резервного копирования сайта, находящегося в директории /bitrix/home/www/, и базы данных. Бекап будет создан по расписанию в виде архива .tar.gz и записан в директории /home/bitrix/backup/archive/.

    У данного способа есть как преимущества, так и недостатки в сравнении с встроенным в продукты «1С-Битрикс» механизмом создания резервной копии:

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

    Для создания расписания автоматического резервного копирования необходимо:

    • В меню виртуальной машины выбрать пункт 17. Start/Stop site backup:

    • Выбрать периодичность и время запуска автоматического резервного копирования:

      Примечание: Время в «1C-Битрикс: Виртуальная машина» по умолчанию московское MSK (часовой пояс - UTC+4).

    Примечание: Если необходимо делать бекап дополнительных сайтов, созданных с помощью административного меню 13. Add additional site, то нужно указать имя директории дополнительного сайта в /home/bitrix/ext_www/:

    На этом работа мастера настройки завершена, и в крон (/etc/crontab) добавляется задача резервного копирования вашего проекта. В случае необходимости более гибкой настройки времени запуска создания резервной копии, можно его скорректировать непосредственно в /etc/crontab:

    10 22 * * * bitrix test -f /home/bitrix/backup/scripts/bxbackup.sh && { /home/bitrix/backup/scripts/bxbackup.sh ; } >/dev/null 2>&1
    

    Версии виртуальной машины до 4.х

    При разворачивании проектов на базе BitrixEnv (в версии для Linux) или BitrixVM старых версий задачу создания резервной копии проекта по расписанию поможет решить скрипт, который создает резервную копию базы данных и файлов сайта (/bitrix/home/www/) в /home/bitrix/backup/archive/.

    Создание резервной копии будет запускаться автоматически раз в сутки, в 2:30. Периодичность исполнения можно настроить в /etc/crontab.

    Для запуска резервного копирования на сайте необходимо выполнить следующие команды:

    wget http://repo.bitrix.info/ext/start_site_backup.sh
    chmod +x start_site_backup.sh
    ./start_site_backup.sh 

    Примечание: Не забывайте следить за свободным местом на диске и периодически удалять старые резервные копии.


    Настройка сервера поиска Sphinx

    Использование Sphinx в качестве поискового механизма позволит значительно увеличить скорость поиска и снизит нагрузку на сервер.

    Для его настройки необходимо:

    • Установить и обновить проект до последней актуальной версии;
    • В меню виртуальной машины выбрать пункт 18. Sphinx search server:

    • В данном меню при первом включении вначале выбрать пункт 0. Start sphinx , а затем 3. Add index, чтобы создать индекс для конкретного сайта. При этом необходимо выбрать кодировку, в которой работает сайт и придумать название индекса:

    • Мастер создаст нужный индекс, перезапустит Sphinx. После чего, покажет полное название индекса и предложит настроить на использование этого индекса установленный на машине проект:

    • Для настройки уже установленного проекта достаточно выбрать его из списка доступных, и после отработки мастера выполнить полную переиндексацию.

    • Все готово к работе:

    Примечание: Ручная настройка поискового механизма Sphinx описана в данном уроке.


    Обновление виртуальной машины VMBitrix

    Внимание! Обновление продукта «1C-Битрикс: Виртуальная машина» - сложная операция, в процессе которой происходит обновление системных файлов операционной системы виртуальной машины, и для этого необходимы соответствующие знания администрирования *nix-систем. Перед запуском обновления рекомендуется сделать полный бекап виртуальной машины.


    Для обновления продукта «1C-Битрикс: Виртуальная машина» необходимо выбрать в административном меню пункт 19. Update System .

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



    Примечания:
    • Если после обновления, что-то перестанет работать, то можно вернуть полностью или частично старые файлы настроек соответствующей службы, т.к. конфигурационные файлы при обновлении не перезаписываются, а сохраняются в файлах *.ori.(метка времени).
    • Также в процессе обновления могут отключиться некоторые модули php. Для их включения необходимо выполнить следующие команды:
      mv -f /etc/php.d/(имя модуля).ini.disabled /etc/php.d/(имя модуля).ini
      service httpd restart
      

    Перенос продукта «1C-Битрикс» на виртуальную машину BitrixVM

    Для переноса сайта с хостинга или локального сервера на виртуальную машину BitrixVM необходимо:

    Создание архива сайта

    1. Создание архива сайта происходит на странице Резервное копирование (Настройки > Инструменты > Резервное копирование) :

      • архив сайта может быть сохранен в облаке «1С-Битрикс»;

        Примечание: Опция копирования в облако «1С-Битрикс» доступна пользователям с активной лицензией. Также, в целях безопасности, все резервные копии сайта отправляются в облако «1С-Битрикс» всегда зашифрованными. Компания «1С-Битрикс» не может восстановить или поменять пароль! Будьте внимательны, без знания этого пароля восстановить архив не удастся!

      • либо в папке сайта (архив сайта будет сохранен в папке /bitrix/backup/ хостинга с уникальным именем файла).
    2. На вкладке Параметры можно выбрать экспертные настройки создания резервной копии:

      Примечание: Для безопасности данных рекомендуется включить опцию Шифровать данные резервной копии и ввести пароль для архива сайта.

    3. После успешного создания архива сайта он будет доступен на странице Список резервных копий (Настройки > Инструменты > Список резервных копий) . Здесь будут показаны все резервные копии:

    4. Далее понадобится Получить ссылку для переноса с помощью одноименного меню действий:

      и в появившемся окне скопировать ее в буфер обмена:

    5. Также можно скачать архив сайта на локальный компьютер с помощью пункта меню Скачать.


    Копирование сайта в виртуальную машину BitrixVM

    1. Запустить предварительно настроенную виртуальную машину BitrixVM (см. урок Запуск виртуальной машины BitrixVM).
    2. В адресной строке браузера ввести http://адрес_виртуальной_машины/ (можно указать домен или ip-адрес).
    3. Откроется мастер установки продукта «1С-Битрикс», где нужно выбрать Восстановить проект:

    4. На этапе загрузки резервной копии выбрать нужный способ хранения архива сайта (в данном случае - ввести ссылку из буфера обмена, полученную на странице со списком резервных копий сайта):

      Примечание: Также есть возможность загрузить архив из облака «1С-Битрикс» (понадобится лицензионный ключ с действующей лицензией) или с локального компьютера, если эти способы были выбраны на этапе создания архива сайта.

    5. После скачивания архива, если архив был зашифрован, то будет предложено ввести пароль:
    6. Далее необходимо настроить подключение к базе данных:

      Настройки подключения к MySQL по умолчанию в виртуальной машине BitrixVM:

      • Сервер: localhost
      • Пользователь БД: root
      • Пароль: <пусто>
      • Имя БД: sitemager0

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

    7. После успешного восстановления базы данных в целях безопасности необходимо Удалить локальную резервную копию и служебные скрипты, нажав на одноименную кнопку:

    8. Перенос продукта «1C-Битрикс» на виртуальную машину BitrixVM закончен:


    Дополнительные настройки BitrixVM

    Внимание! Для операций, описанных в данной главе, необходимы начальные знания администрирования. Перед началом проведения данных операций рекомендуется сделать полный бекап виртуальной машины.


    Изменение стандартных настроек BitrixVM без отключения автоподстройки

    При запуске виртуальной машины BitrixVM или физического сервера с установленным пакетом BitrixEnv сервисом bvat автоматически настраиваются основные параметры Apache, PHP, MySQL в зависимости от количества доступной памяти. Это позволяет обеспечивать оптимальные настройки сервера.

    Но в ряде случаев возникает необходимость изменения некоторых параметров без отключения сервиса bvat. Для внесения таких изменений в настройки сервер предусмотрены специальные конфигурационные файлы, позволяющие переопределять параметры устанавливаемые сервисом bvat:

    • MySQL - /etc/mysql/conf.d/z_bx_custom.cnf
    • PHP - /etc/php.d/z_bx_custom.ini
    • Apache - /etc/httpd/bx/custom/z_bx_custom.conf

    В случае, если нет этих файлов, то их можно создать самостоятельно.


    Настройка почты на VMBitrix

    Запустите виртуальную машину.

    В первом окне нажмите Login, войдите под root (это обязательно). Отобразится меню настройки:

    Нажмите 1, потом - Enter и пройдите шаги базового мастера настройки почты.

    В большинстве случаев этот мастер может сразу решить проблему настройки, достаточно указать адрес почтового сервера, порт, требуется ли авторизация для отправки писем, и, если да, то логин и пароль.

    Однако этот мастер не учитывает много нюансов относительно шифрования, специфических алгоритмов аутентификации.

    • Для проверки результата параллельно настройке откройте ваш Bitrix Framework.
    • Перейдите на страницу Настройки > Инструменты > Командная PHP строка и выполняйте скрипт после каждой манипуляции с настройками:
      if(mail("email@example.com", "TEST SUBJECT", "TEST BODY"))
      echo "Почтовая система работает!";
      else
      echo "Неудача, почтовая система не работает, попробуйте еще!";

      Если после прохождения мастера почтовая система не заработала, то:

    • Зайдите под root в консольный режим.
    • Перейдите в папку /home/bitrix/.

    В этой папке мастер создает файл конфигурации .msmtprc - в нем хранится конфиг. Также, после того, как мы через функцию mail попробовали отправить письмо и получили ошибку, должен создаться файл .msmtp.log - с указанием ошибки отправки, которую вернул почтовый сервер. Его также необходимо изучить.

    Примерное содержимое файла .msmtprc:

    account default
    logfile /home/bitrix/.msmtp.log
    host mail.bitrixsoft.com
    port 25
    from user@email.com
    auth off

    Указан хост, порт и то, что авторизация не требуется. Если при таком конфиге в файле .msmtp.log ошибка вида:

    cannot use a secure authentication method

    то, значит, надо включать авторизацию:

    account default
    logfile /home/bitrix/.msmtp.log
    host mail.bitrixsoft.com
    port 25
    from user@email.com
    auth on
    user user_name
    password user_password

    Значения user_name и user_password и user@email.com - меняем на свои, их надо запросить у администратора почтового сервера, если они вам неизвестны.

    Если ошибка не пропала, значит схема авторизации немного другая и надо пробовать другой конфиг. (После каждого изменения необходимо сохранить файл и без перезагрузки веб-сервера пробовать отправить почту скриптом, описанным выше.)

    account default
    logfile /home/bitrix/.msmtp.log
    host mail.bitrixsoft.com
    port 25
    from user@email.com
    auth on
    login user_name
    password user_password
    

    или такой:

    account default
    logfile /home/bitrix/.msmtp.log
    host mail.bitrixsoft.com
    port 25
    from user@email.com
    auth login
    user user_name
    password user_password

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

    Перечисленные выше варианты работают для почтовой системы без шифрования. Если на вашем почтовом сервере обязательно требуется шифрование для отправки письма, то тут надо запросить новый номер порта, обычно это 465, и конфиг меняется на такой:

    account default
    logfile /home/bitrix/.msmtp.log
    host mail.bitrixsoft.com
    port 465
    tls on
    tls_starttls off
    tls_certcheck off
    from user@email.com
    auth on
    login user_name
    password user_password

    Этот конфиг должен работать с шифрованым соединением. Также иногда возможны совмещения шифрования с вариантами авторизации, описанными выше, и надо пробовать разные конфиги, например:

    account default
    logfile /home/bitrix/.msmtp.log
    host mail.bitrixsoft.com
    port 465
    tls on
    tls_starttls off
    tls_certcheck off
    from user@email.com
    auth login
    user user_name
    password user_password
    или:
    account default
    logfile /home/bitrix/.msmtp.log
    host mail.bitrixsoft.com
    port 465
    tls on
    tls_starttls off
    tls_certcheck off
    from user@email.com
    auth on
    login user_name
    password user_password

    На этом настройка почты должна успешно завершиться.



    Увеличение дискового пространства BitrixVM

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап BitrixVM.

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

    Так как основной объем дискового пространства потребляется контентом сайтов и их резервными копиями, расположенными в /home/bitrix, а также БД, расположенной в /var/lib/mysql, то на отдельные диски, следует выносить именно эти разделы.


    Рассмотрим данную задачу на примере переноса на отдельный диск папки /home с контентом сайтов и их резервными копиями.

    • Для этого, в настройках виртуальной машины в список оборудования, добавляем новый диск необходимого размера. Все указанные ниже действия необходимо осуществлять под учетной записью администратора root:

    • После добавления диска, для его инициализации, возможно потребуется перезагрузить сервер. Увидеть новый диск и присвоенное ему буквенное обозначение можно выполнив команду:
      fdisk -l

    • Далее на новом диске создаем основной раздел, которому выделяем все свободное пространство диска командой:
      fdisk /dev/sdb

    • Для сохранения изменений на диск и выхода из fdisk введите команду w.

    • После сохранения таблицы разделов, форматируем новый раздел и переносим на него информацию из /home:
      mkfs.ext4 /dev/sdb1 
      mount /dev/sdb1 /mnt 
      service httpd stop 
      service nginx stop
      mv -f /home/* /mnt 
      umount /mnt
      
    • Следующим шагом определяем UUID нового диска:
      blkid
      /dev/sda1: UUID="99066558-ba04-465c-9962-e827aa2928ec" TYPE="ext4" 
      /dev/sda2: UUID="8ea38ef9-1ee5-423b-a013-15fd603a678e" TYPE="swap" 
      /dev/sda3: UUID="08ec5c65-8fd8-47ac-a998-d81195c8f964" TYPE="ext4" 
      /dev/sdb1: UUID="b2e58731-b621-4bd5-909a-afe3bb5dd8a1" TYPE="ext4"
      

      и добавляем запись (в данном примере: UUID=b2e58731-b621-4bd5-909a-afe3bb5dd8a1) о нем в /etc/fstab (вместо UUID можно также использовать имя устройства /dev/sdb)

    • Остается только примонтировать новый диск и запустить остановленные ранее службы:
      mount /home 
      service httpd start 
      service nginx start 
      

    Добавление дисков в других средах виртуализации или непосредственно на физическом сервере, проходит аналогично.


    Подключение Swap-раздела

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап BitrixVM.

    Виртуальная машина BitrixVM поставляется с swap-разделом 256 МБ, а в образе ami он по умолчанию не подключен. Поэтому в процессе эксплуатации может возникнуть необходимость в расширении раздела подкачки.

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

    Для этого:

    • подключаем к виртуальной машине диск или создаем файл подкачки:
      dd if=/dev/zero of=/swapfile bs=1M count=1024
      
    • создаем на диске:
      mkswap /dev/sdb1
      
      или в файле swap-раздел:
      mkswap /swapfile
      
    • подключаем раздел подкачки:
      swapon /dev/sdb1
      
      или файл подкачки:
      swapon /swapfile
      
    • и наконец, добавляем запись о новом разделе подкачки в /etс/fstab, чтобы не включать после каждой перезагрузки вручную:
      /dev/sdb1 none swap sw 0 0
      
      или о файле подкачки:
      /swapfile none swap sw 0 0
      

    Корректное монтирование Windows-ресурсов

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап BitrixVM.


    В случае необходимости подключения сетевого диска Windows в качестве хранилища для WebDAV можно воспользоваться следующей командой:

    mount -t cifs -o -fstype=cifs,iocharset=utf8,username=XXXX,password=XXXX,uid=500,gid=501,fmode=0777,noserverino //xxx.xxx.xxx.xxx/folder /home/bitrix/www/docs/folder/smb
    
    где:
    • uid - идентификатор пользователя bitrix;
    • gid - идентификатор группы bitrix;
    • //xxx.xxx.xxx.xxx/folder - путь к сетевому ресурсу;
    • /home/bitrix/www/docs/folder/smb - папка, куда будет смонтирован диск.

    Примечание: Использование опции noserverino является обязательным, так как в PHP есть уязвимость.


    Настройка memcached

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».


    В случае, если в проекте планируется использовать memcached, необходимо произвести его настройку в соответствии с предполагаемой нагрузкой.

    Для этого необходимо:

    • в файле /etc/sysconfig/memcached задать следующие параметры:
      • MAXCONN = "1024" - количество одновременных подключений (по умолчанию 1024);
      • CACHESIZE="1024" - объем выделяемой памяти для кеша (по умолчанию 64MB);
      • OPTIONS="t 8" - количество потоков memcached (по умолчанию 4).
    • Примечание: Параметры MAXCONN, CACHESIZE и OPTIONS подбираются экспериментальным путем в зависимости от характера нагрузки и от имеющихся ресурсов.

      Оценить объем памяти, необходимой для кеширования (параметр CACHESIZE), можно по размеру вашего файлового кеша. Если у вас на проекте файловый кеш занимает 3 GB, то использование memcache c 256МБ памяти не будет эффективным за счет частого вытеснения.

    • После настройки memcaсhe необходимо перезапустить командой:
      service memcached restart
      
    • Далее подключить его в bitrix/php_intarface/dbconn.php:

      define("BX_CACHE_TYPE", "memcache");
      define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
      define("BX_MEMCACHE_HOST", "127.0.0.1");
      define("BX_MEMCACHE_PORT", "11211");
      

    В случае, если используется один сервер, то для улучшения производительности можно настроить работу с memcache через сокет:

    • USER="bitrix" - пользователь, от которого будет запущен memcache;
    • OPTIONS="-t 8 -s /tmp/memcached.sock" - количество потоков и путь к сокету.

    После этого необходимо изменить настройки в bitrix/php_interface/dbconn.php:

    define("BX_CACHE_TYPE", "memcache");
    define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
    define("BX_MEMCACHE_HOST", "unix:///tmp/memcached.sock");
    define("BX_MEMCACHE_PORT", "0");
    

    Настройка Postfix для отправки почты

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап виртуальной машины.


    По умолчанию в BitrixEnv и BitrixVM используется msmtp для отправки почтовых сообщений.

    Преимуществом данного решения является простота его настройки. К недостатком можно отнести медленную отправку почтовых сообщений через внешние сервисы (Google, Yandex).

    В большинстве случаев, это не приводит к каким-либо проблемам, так как почтовые события отрабатывают из-под cron-a, но в ряде случаев может создать проблему - например, если почтовые события исполняются на хите (задан параметр немедленной доставки) или разработчик напрямую использует функцию mail().


    Рассмотрим настройку отправки почтовых сообщений postfix-ом через Яндекс:

    1. Устанавливаем дополнительные пакеты:
      yum install cyrus-sasl-plain
      
    2. Добавляем в файл /etc/postfix/main.cf:
      smtp_sasl_auth_enable = yes 
      smtp_sasl_password_maps = hash:/etc/postfix/mailpasswd 
      smtp_sasl_security_options = noanonymous 
      smtp_sasl_type = cyrus 
      smtp_sasl_mechanism_filter = login
      smtp_sender_dependent_authentication = yes
      sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay 
      sender_canonical_maps = hash:/etc/postfix/canonical 
      smtp_generic_maps = hash:/etc/postfix/generic
      
    3. В /etc/postfix/mailpasswd указываем логин и пароль:
      [smtp.yandex.ru]      www@some.ru:password
      
    4. В /etc/postfix/sender_relay указываем привязку доменов и конкретных отправителей к внешним службам:
      @some.ru [smtp.yandex.ru] 
      www@some.ru [smtp.yandex.ru]
      
    5. В /etc/postfix/canonical добавляем для домена указание через какой аккаунт отправлять почту:
      @some.ru   www@some.ru
      
    6. В /etc/postfix/generic добавляем отправку почты админу:
      root@localhost admin@mail.xx 
      bitrix@localhost admin@mail.xx
      
    7. И выполняем команду postmap для /etc/postfix/generic, /etc/postfix/canonical, /etc/postfix/sender_relay, /etc/postfix/mailpasswd:
      postmap /etc/postfix/generic
      postmap /etc/postfix/canonical
      postmap /etc/postfix/sender_relay
      postmap /etc/postfix/mailpasswd
      
    8. Изменяем настройки в php.ini:
      sendmail_path = sendmail -t -i -f www@some.ru          ;bitrix-env 
      
    9. Запускаем все необходимые службы:
      chkconfig saslauthd on
      service saslauthd restart   
      chkconfig postfix on
      service postfix restart
      service zend-server restart
      

    Скорость отправки сообщений php-скриптами значительно возрастет, а всю работу по доставке писем до внешнего сервера возьмет на себя postfix. При этом не нужно настраивать полноценный почтовый сервер.


    Выполнение всех агентов на Cron

    На больших и не очень проектах часто возникает вопрос с переносом исполнения некоторых особо тяжелых агентов на Cron.

    • Для начала полностью отключим выполнение агентов на хите. Для этого необходимо выполнить команду в php-консоли административного меню продукта «1С-Битрикс» /bitrix/admin/php_command_line.php?lang=ru:
      COption::SetOptionString("main", "agents_use_crontab", "N"); 
      echo COption::GetOptionString("main", "agents_use_crontab", "N"); 
      
      COption::SetOptionString("main", "check_agents", "N"); 
      echo COption::GetOptionString("main", "check_agents", "Y");
      

      В результате выполнения должно быть NN.

    • Убираем из файла /bitrix/php_interface/dbconn.php определение следующих констант:
      define("BX_CRONTAB_SUPPORT", true);
      define("BX_CRONTAB", true);
      

      И добавляем:

      if(!(defined("CHK_EVENT") && CHK_EVENT===true))
         define("BX_CRONTAB_SUPPORT", true);
       
    • Далее создаем файл проверки агентов и рассылки системных сообщений /bitrix/php_intarface/cron_events.php:
      <?
      $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../..");
      $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
      
      define("NO_KEEP_STATISTIC", true);
      define("NOT_CHECK_PERMISSIONS",true); 
      define('CHK_EVENT', true);
      
      require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
      
      @set_time_limit(0);
      @ignore_user_abort(true);
      
      CAgent::CheckAgents();
      define("BX_CRONTAB_SUPPORT", true);
      define("BX_CRONTAB", true);
      CEvent::CheckEvents();
      ?>
      
    • И добавляем данный скрипт в Cron:
       */5 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
      

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


    Чтобы не увеличивалась очередь отправки почтовых сообщений, нужно изменить параметр, отвечающий за количество почтовых обрабатываемых за раз событий. Для этого выполняем в php-консоли следующую команду:

    COption::SetOptionString("main", "mail_event_bulk", "20"); 
    echo COption::GetOptionString("main", "mail_event_bulk", "5");
    

    Опции монтирования

    Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап виртуальной машины.


    Для обеспечения более высокой производительности файловой системы рекомендуем отключать изменение метки времени при чтении файлов и директорий: noatime, nodiratime.

    Для этого в /etc/fstab нужно отредактировать (добавить в текущую строку) параметры в строке со своим UUID:

    UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 /    ext4    defaults,noatime,nodiratime    1 1
    
    где UUID=abd9bdaa-e17d-40b3-aee5-37ef53a57b16 - уникальный идентификатор диска, который можно узнать в консоли по команде blkid.

    Примечание: Вместо UUID можно также использовать имя устройства: /dev/sda1, /dev/sda2, /dev/sda3. Или метку тома если она задана, например: LABEL=root.

    После перезагрузки новые настройки начнут действовать.

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

    mount -o remount,noatime,nodiratime /
    

    Примечание: К решению проблемы производительности файловой системы нужно подходить творчески. Если, например, на диске есть еще кеш некоторых приложений, то от предложенных мер производительность может снизиться, так как многие приложения очищают кеш по метке доступа, которые в примере предлагается отключить. В некоторых случаях увеличение времени коммита может дать лучший результат, особенно если много оперативной памяти. Время коммита задается параметром commit. Для установки его в 120 секунд, например, необходимо добавить commit=120. То есть набор опций монтирования будет defaults,noatime,commit=120.

    По умолчанию сброс данных и метаданных на диск происходит каждые 5 сек. Откладывание времени сброса, так же может уменьшить фрагментацию файлов на диске, если есть файлы, в которые часто происходит дописывание данных. Например логи.


    Настройка NTLM-авторизации

    Для поддержки механизма NTLM-авторизации продуктами «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке» необходим модуль «AD/LDAP интеграция» версии 11.5.0 и выше.

    После включении и настройки новый механизм NTLM-авторизации начинает работать следующим образом:

    • неавторизованный посетитель приходит на проект, где обработчиком события он перенаправляется на открытый порт Apache (8890 для http или 8891 для https);
    • Apache выполняет NTLM-авторизацию пользователя и пользователь перенаправляется назад на 80 или 443 порт (для http и https соответственно);
    • следующие хиты пользователь выполняет в обычном режиме.

    Рассмотрим настройку на примере «Битрикс24 в коробке».


    Настройка NTLM-авторизации пользователей в «Битрикс24 в коробке»

    • Во время установки, в мастере выбираем Разрешить пользователям Active Directory авторизовываться на портале:

    • Далее вводим настройки подключения к домену AD, проверяем соединение:

    • Указываем соответствия групп в AD группам корпоративного портала:

    • После завершения установки в административном разделе портала открываем страницу Active Directory / LDAP серверы (Настройки > AD/LDAP):

    • редактируем параметры сервера Active Directory, указывая домен для NTLM авторизации:

    • После этого заходим в настройки модуля AD/LDAP и устанавливаем Использовать NTLM авторизацию:

    Продукт «1С-Битрикс» готов к использованию NTLM-авторизации, осталось настроить виртуальную машину.


    Внимание! Если необходимо для локальной сети компании настроить NTLM-авторизацию, а для сотрудников, работающих с порталом, использовать стандартную авторизацию, то дополнительно в настройках модуля AD/LDAP нужно указать диапазон IP-адресов, для которых необходима NTLM-авторизация - Ограничить NTLM переадресацию следующей подсетью (например, 192.168.0.1/24):


    Настройка NTLM-авторизации пользователей в «1С-Битрикс: Виртуальная машина»

    Для настройки виртуальной машины необходимо подключитьcя к ней под пользователем root, выбрать пункт меню NTLM autentification и ввести необходимые данные:

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

    Примечание: Проверить, что компьютер успешно введен в домен можно командой:
    net ads testjoin

    Настройка завершена, для успешной NTLM-авторизации осталось проверить настройки браузеров.


    Настройка NTLM-авторизации в браузерах

    • Internet Explorer

      Для успешной NTLM-авторизации нужно, чтобы веб-сервер находился в зоне Local Intranet (при необходимости нужно добавить):

    • Mozilla Firefox:

      Добавить веб-сервер к списку доверенных URI для автоматической NTLM-авторизации (через параметр network.automatic-ntlm-auth.trusted-uris на странице Firefox: about:config)

    Примечание: Действия по включению NTLM-авторизации на уже установленном продукте «Битрикс24 в коробке», а также в «1С-Битрикс: Управление сайтом» аналогичны перечисленным выше, за исключением того, что сервер Active Directory добавляется вручную в административном разделе.


    Подключение IDE

    Для упрощения работы с Bitrix Framework в виртуальную машину включён Xdebug. Работает он по схеме:

    Перед изменением настроек надо переименовать файл xdebug.ini.disabled в xdebug.ini и перезапустить httpd.

    Для настройки машины воспользуйтесь следующим примером:

    $ cat /etc/php.d/xdebug.ini
    ; Enable xdebug extension module
    zend_extension=/usr/lib/php/modules/xdebug.so
    xdebug.remote_enable=on
    xdebug.remote_host=192.168.205.1
    xdebug.remote_port=9000

    Примечание: Xdebug требует использовать proxy при работе через Network Address Translation, необходимо открыть порт 9000.