Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM! Хостинг

Виртуальная машина 1С-Битрикс — бесплатный программный продукт для разработчиков, который полностью настроен для стабильной работы сайтов под управлением одноимённой CMS.

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

Содержание
  1. Подготовка к установке
  2. Установка и настройка VirtualBox
  3. Установка нового сайта
  4. Перенос сайта 1С-Битрикс на локальный сервер
  5. Начальная настройка окружения
  6. Добавление сайта
  7. Установка SSL-сертификата
  8. Автоматическая установка SSL-сертификата Let’s Encrypt на Bitrix VM 7
  9. Обновление Bitrix VM до версии 7. 2 (и старше)
  10. Подключение модулей PHP
  11. Подключение установленных вручную модулей PHP
  12. Первоначальные установки
  13. Создание пула
  14. Перенос сайта с другого хостинга
  15. Включение push
  16. Включение memcached
  17. Установка бесплатного SSL-сертификата
  18. Создание базы данных для установки 1С-Битрикс
  19. Установка Битрикс на хостинг с помощью bitrixsetup. php
  20. Перевод агентов на Cron
  21. Установить bitrixenv
  22. Настроить bitrixenv
  23. Перенос проекта
  24. Включение кластерного режима работы
  25. Тюнинг производительности
  26. Выводы
  27. Плюсы bitrixenv
  28. Минусы bitrixenv
  29. Как установить бесплатный ssl сертификат от Lets Encrypt в битрикс-машине?
  30. Что делать, если сертификат не устанавливается и битрикс машина выдает ошибку?

Подготовка к установке

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

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Установка и настройка VirtualBox

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Настройки сети для BitrixVM

Далее, запускаем виртуальную машину и дожидаемся загрузки командной строки.

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Для продолжения настройки зададим новые пароли для пользователей root и bitrix. При первом запуске вводим дефолтную связку для авторизации:

  • root
  • bitrix (пароль нужно ввести дважды)

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Сервер работает под управлением CentOS

Установка нового сайта

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

Перенос сайта 1С-Битрикс на локальный сервер

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Создание резервной копии сайта под управлением 1С-Битрикс

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Создание нового подключения в WinSCP

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Корневая директория сервера

На этом установку Битрикс на локальный сервер можно считать завершенной.

Bitrix VM — бесплатное ПО, созданное на основе CentOS, разработанное специально для CMS 1С-Битрикс.

На данный момент существует две версии Bitrix VM:

  • 5.x — окружение настроено для работы со старыми версиями CMS, используется PHP 5.6 и MySQL 5.5.
  • 7.х — актуальная ветка для последних версий CMS, используется PHP 7.1 и MySQL 5.7.

Стоит отметить, что установка панелей управления на Bitrix VM не предусмотрена.

Начальная настройка окружения

При подключении к серверу под пользователем root появляется список интерфейсов и меню управления.

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

Enter new name for master (default=box-16504.localdomain):

Добавление сайта

Чтобы сайт был доступен в браузере для установки CMS/восстановления, его необходимо добавить с помощью меню управления.

Для этого необходимо:

6. Manage sites in the pool

1. Create a site.

Enter the site name (e.g. example.org) or 0 to exit: bitrixvm.sh

  • Выбираем тип установки:kernel — отдельный сайт.ext_kernel — отдельный сайт с возможностью мультисайтовости.link — новый сайт в рамках мультисайтовости Bitrix (будет работать только при наличии сайта с типом ext_kernel):
  • kernel — отдельный сайт.
  • ext_kernel — отдельный сайт с возможностью мультисайтовости.
  • link — новый сайт в рамках мультисайтовости Bitrix (будет работать только при наличии сайта с типом ext_kernel):

Установка SSL-сертификата

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

  • Полученный файл ssl-bundle.crt и приватный ключ размещаем в директории /etc/nginx/ssl
  • Создаем конфигурационный файл для сайта, копируя стандартный:

cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/domain_ssl.conf

ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;

# Enable SSL connection
include bx/conf/domain_ssl.conf;

nginx -t
systemctl restart nginx.service

Инструкция по установке SSL-сертификата также доступна в официальной документации.

Автоматическая установка SSL-сертификата Let’s Encrypt на Bitrix VM 7

Установка SSL-сертификата Let’s Encrypt выполняется с помощью встроенного меню /root/menu.sh.

8. Manage web nodes in the pool

3. Certificates configuration

1. Configure Let’s encrypt certificate

Enter site name (default): site.ru

Enter DNS name(s): site.ru, www.site.ru

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

Обновление Bitrix VM до версии 7. 2 (и старше)

В последней версии виртуального окружения Bitrix VM 7.2 выпущена функция установки Let’s Encrypt и другие важные изменения.

Для обновления Bitrix VM выполняем следующие действия:

chmod +x bitrix-env.sh

Подключение модулей PHP

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

Файлы модулей хранятся в /etc/php.d с расширением .ini. Те, что с суффиксом .disabled — отключены.

Пример подключения cURL

Подключение установленных вручную модулей PHP

Для модуля необходимо создать ini-файл в каталоге /etc/php.d, добавлять информацию напрямую в php.ini не рекомендуется.

Пример установки модуля xmlwritter

; Enable xmlwriter extension module
extension=xmlwriter.so

Была ли эта инструкция полезной?

Первоначальные установки

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Создание пула

Для размещения сайтов на VPS необходимо создать пул и ввести название сервера. Наберите цифру 1, чтобы выбрать пункт Create management pool on the server:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Если вы при заказе сервера не указывали имя домена, то на следующем шаге система предложит его ввести. Если уже домен указан, то нажмите Enter:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Если все сделано без ошибок, то система выдаст следующее сообщение:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Нажмите любую клавишу. Пул создан:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Для чистовой установки Битрикс необходимо сначала добавить сайт. Для добавления сайта выполните последовательно следующие шаги:

3.1. В главном меню введите цифру 6. Configure pool sites.

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

3.2. Затем введите цифру 1. Create a site.

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

3.3. Введите имя домена (без http и www, кириллические домены необходимо указывать в punycode):

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

3.4. Далее нужно выбрать тип установки — link, kernel или ext_kernel:

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

ext_kernel — отдельное ядро продукта «1С-Битрикс» в новой директории сайта для создания линков на это ядро в рамках многосайтовости, ядро будет недоступно напрямую, а только через дополнительные сайты (работает в паре с сайтами типа link).

link — в случае создания дополнительного сайта в рамках многосайтовости — общее ядро и данные в общей базе с уже установленным продуктом «1С-Битрикс» (работает в паре с ядром ext_kernel).

3.5. Далее система предложит выбрать кодировку. Рекомендуем выбрать UTF-8.

3.6. Do you want to enable cron for this site — выберите y

3.7. Настройка базы данных:

Do you want to customize them — указать y, чтобы самостоятельно задать имя и пароль базы данных. Можно пропустить шаг, тогда при преноса сайта данные на подключение к базе данных подставятся автоматически.

Enter the document root path — нажать Enter, чтобы оставить значение по умолчанию.

Enter database name — ввести имя базы данных.

Enter password for имя_базы — ввести пароль пользователя базы данных.

Re-enter password for имя_базы — повторно ввести пароль из предыдущего пункта.

3.8. Нажмите Enter, чтобы завершить работу мастера. Если все сделали правильно, то введите 0 для возврата в предыдущее меню:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

3.9. Установка сайта. Наберите в браузерной строке IP адрес вашего сервера или технический адрес, который был вам присвоен после заказа, или же адрес реального сайта, если вы уже делегировали его на VPS. Запустится мастер установки VMBitrix:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Нажмите кнопку Установить и следуйте указаниям мастера установки. Инструкция по установке Битрикс.

Перенос сайта с другого хостинга

Наберите в браузерной строке ваш IP адрес. Запустится мастер установки VMBitrix:

Нажмите кнопку Восстановить копию. Далее следуйте указаниям мастера установки. Инструкция по переносу сайта на Битрикс.

Включение push

5.1. Обязателен при использовании Битрикс24 и Битрикс24: Интернет-магазин + CRM. В главном меню VMBitrix введите цифру 9 — Configure Push/RTC service for the pool. Далее введите цифру 1 — Install/Update NodeJS RTC Service

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

5.2. Далее ввести имя хоста, где будет запущен сервер поиска Sphinx.

Читайте также:  Любые платформы. Любые устройства

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

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

Включение memcached

6.1. В главном меню VMBitrix введите цифру 4 — Configure memcached service for the pool

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

6.2. Введите цифру 1 — Configure memcached service

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

6.3. Введите имя хоста в пуле, на котором будет запущен сервер memcached. Сюда вписываем домен, который указывали ранее в разделе 2 «Создание пула»:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Установка бесплатного SSL-сертификата

7.1. Для установки бесплатного сертификата ваш домен уже должен быть делегирован на сервер. В главном меню VMBitrix введите цифру 8 — Manage pool web servers

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

7.2. Далее введите цифру 3 — Configure certificates

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

7.3. Далее выберите цифру 1 — Configure “Let’s encrypt” certificates

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

7.4. Введите имя сайта:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

7.4. Введите DNS name. Здесь вписываем домен и его www версию через запятую:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

7.5. Далее система попросит ввести e-mail адрес для уведомлений. Вписываем реально существующий адрес!

7.6. На следующем шаге система попросит подтвердить ваше согласие на установку SSL-сертификата. Введите Y.

7.7. Нажмите Enter, чтобы завершить работу мастера. Введите 0, чтобы выйти в предыдущий экран.

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

После активации услуги хостинга Вам на e-mail поступит письмо с необходимыми доступами. Для проводения работ нам понадобится только Панель управления https://my.jehost.ru.

Процедура установки Битрикс на хостинг состоит из 3 шагов:

  • Создание базы данных
  • Установка Битрикс
  • Настройка Битрикс

Создание базы данных для установки 1С-Битрикс

Сайтам на CMS Bitrix необходима база данных для работы. Первым шагом будет ее создание в Панели управления. Вам нужно зайти по адресу

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Все, Вы создали базу данных для сайта, теперь переходим к следующему шагу.

Установка Битрикс на хостинг с помощью bitrixsetup. php

Данный скрипт нужно поместить в корневой каталог сайта, это можно сделать через FTP или через меню в Панели https://my.jehost.ru

WWW-домены — Имя сайта — Каталог — Закачать — «Тип URL файла на другом сервере» — ввести адрес скрипта и нажать ОК.

На первом шаге Вам нужно выбрать редакцию Битрикс, которую нужно установить, а также, если у Вас уже есть лицензия на Битрикс, то можно ввести лицензионный ключ и нажать Загрузить.

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Скрипт начнет скачивание нужного дистрибутива и затем автоматически запустит установку 1С-Битрикс на хостинг. Сама установка довольно проста, просто следуйте по шагам. На предпоследнем шаге система попросит Вас ввести данные на подключение к базе данных. Поле Server оставьте по умолчанию, введите только Имя пользователя, Пароль, Имя базы данных, которые Вы сохранили ранее при создании Базы данных и нажмите Далее.

На последнем наше введите Имя пользователя, Пароль и e-mail адрес администратора сайта.

На этом установка 1С-Битрикс на хостинг завершена.

Перевод агентов на Cron

После установки Bitrix необходимо выполнить первоначальную настройку сайта, а именно перевести выполнение агентов на Cron.

Для этого в Панели управления хостинга зайдите в меню Планировщик — Создать. В поле Команда введите путь до файла cron_events.php

Далее в поле Расписание выберите Экспертный режим и заполните их следующим образом:

Минуты    */1Часы    *Дни месяцев *Месяцы *Дни недели *

Также можете отметить галочкой Не отправлять отчет по e-mail и нажать ОК.

На последнем этапе проверьте, чтобы в файле адрес_сайта/bitrix/php_interface/dbconn.php у Вас был прописан параметр

Поздравляем! На этом установка 1С-Битрикс на хостинг завершена.

В определённый момент появилась задача — перевести, существующий и активно работающий в production, проект на работу в кластере серверов. Т.к. проект разработан на базе 1C-Bitrix, было принято решение построить кластер с использованием «1С-Битрикс»: Веб-окружение». Цель данного мероприятия — получить возможность выдерживать большие нагрузки при наплывах посетителей сайта, а также возможность в дальнейшем быстрее масштабироваться горизонтально.

Собственно, если мы обратимся на сайт вендора, то там увидим что:

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

В состав «1С-Битрикс: Веб-окружение» — Linux входят: mysql-server, httpd, php, nginx, nodejs push-server, memcached, stunnel, catdoc, xpdf, munin, nagios, sphinx.

По сути, данный комплекс ПО содержит в себе настроенный LAMP, консольную панель управления сервером, плюс дополнительные, необходимые для работы некоторых модулей 1C-Bitrix, пакеты. Весь софт настроен с учётом особенностей 1C-Bitrix, а именно:

  • установлены необходимые расширения (gd, zip, socket, mbstring)
  • включена поддержка short-тегов
  • заданы необходимые значения для параметров memory_limit, max_input_vars, safe mode, opcache.validate_timestamps, opcache.revalidate_freq, mbstring.func_overload, default_charset, display_errors и др.
  • установлен одинаковой часовой пояс для БД, php и на самом сервере
  • и др.

Это позволяет в большинстве случаев не заниматься настройкой сервера и его тюнингом.

Итак, у нас было 2 app сервера (назовём их app01 и app01), 2 db сервера (db01, db02), 1 сервер под кэширование (cache01, ну вы поняли), точнее была идея реализовать структуру кластера подобным образом. Под этот план были получены 5 серверов, с установленными на них последними версиями centos7 (к сожалению, debian, ubuntu, fedora, rhel и др. не подходят), кроме os на серверы больше ничего не устанавливалось.

Т.к. мы собираем кластер, то необходимо определить, какой из серверов будет основным. Из-за особенностей балансировки запросов к приложению, один из серверов, где будет работать httpd, будет также содержать nginx. Все входящие запросы будет принимать также он, и после этого перенаправлять запрос на одну из доступных web-нод. Мы выбрали основным сервер app01.

В дальнейшем работа пошла по следующему плану:

Установить bitrixenv

Установка не подразумевает сверхъестественных знаний linux или администрирования. Заходим на каждый сервер через ssh и выполняем такие команды:

cd ~
wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh
chmod +x bitrix-env.sh
./bitrix-env.sh

Ставить bitrixenv необходимо на все серверы, которые планируется использовать в кластере. Даже если сервер будет работать только как инстанс memcached, bitrixenv необходим, т.к. позволяет управлять всем кластером из основного сервера.

Настроить bitrixenv

Т.к. использовать весь этот зоопарк мы будем как кластер, то производить настройку серверов можно через меню окружения на app01. Для этого заходим на сервер через ssh, и запускаем файл /root/menu.sh. При первом запуске необходимо задать пароль для пользователя bitrix (аналогичную операцию необходимо провести на всех серверах, где планируется запуск сайта):

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Тут нам необходимо выбрать первый пункт меню. В процессе создания окружение запросит имя текущего сервера, тут то мы и указываем app01:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

В общем окружение уже готово и можно им пользоваться. Если кластер нам не нужен, то на этом можно было бы и заканчивать, но мы пойдём дальше.

Теперь нам необходимо добавить в созданный пул все доступные серверы. Для этого воспользуемся первым пунктом меню и увидим такие варианты:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Опять выбираем первый пункт меню, и указываем ip нового сервера, его имя в кластере (те самые app02, db01, db02, cache01) и root-пароль от подключаемого сервера. Таким образом, поочерёдно добавляем каждый имеющийся сервер. После того, как все серверы зарегистрированы в кластере, мы должны получить примерно такой список на главном экране окружения:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Настройку ролей серверов пока отложим на следующий шаг.

Перенос проекта

Т.к. наше приложение изначально работает на одном сервере, то модуль масштабирования и управления кластером отключены, база не реплицирована. Сам перенос ничего сверхъестественного из себя не представляет — упаковали папки bitrix и upload, сняли дамп БД.

После того, как архивы и дампы готовы, заходим на app01, и тянем через git код проекта в дефолтную папку сайта в bitrixenv — /home/bitrix/www, скачиваем wget-ом или curl-ом архивы и дамп БД, распаковываем архивы и заливаем дамп в БД на app01, переносим записи cron.

Читайте также:  Разблокируйте удаленный доступ: упростите процесс входа в систему с помощью нашего приложения

Если ваше приложение использует дополнительный софт, то самое время его установить и настроить. В нашем случае были установлены и настроены supervisord и RabbitMQ, т.к. приложение работало с использованием очередей.

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

Включение кластерного режима работы

После того, как приложение было перенесено на app01, и мы проверили корректность его работы, пришла пора заняться самым интересным — масштабированием. Для начала необходимо установить модули scale и cluster в админ-панели 1C-Bitrix. Во время установки ничего особо делать не нужно, вся работа происходит далее.

Как только модули установлены, переходим в ssh-соединение с основным сервером, а это app01, и открываем меню bitrixenv (лежит тут /root/menu.sh). Прежде чем приступить к дальнейшей настройке, необходимо выяснить один важный момент — bitrixenv оперирует понятием “роль сервера”. Не имеет особого значения, как называется сервер в пуле, т.к. каждый сервер содержит весь софт, который входит в пакет bitrixenv, мы всегда можем назначить ему одну или несколько ролей, а можем снять их с него или поменять на другие. Основные роли это — mgmt (балансировщик, т.е. nginx), web (т.е. httpd/apache), mysql_master и mysql_slave (инстанс БД, slave появляется уже когда начинаем делать репликацию), memcached (сервер с memcached). Общая картина теперь понятна, и мы решили начать с memcached-сервера. Для этого заходим в пункт

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

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

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Пришло время добавить второй app-сервер. Для этого переходим по пути

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

где нам необходимо указывать имя сервера и способ синхронизации между основной и новой web-нодой. Исходя из документации bitrixenv и предварительных испытаний, нашему проекту было достаточно выбрать первый вариант (за один шаг происходит и копирование проекта и настройка конфигов ноды). После того, как фоновые работы закончатся, мы должны увидеть в главном меню примерно такую картину:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Обратим внимание на то, что в колонке Roles напротив сервера app02 указана роль web.
Осталось разобраться с БД, её настройка занимает больше всего времени. Для начала вкратце объясню, как раздаются роли mysql в контексте bitrixenv. По-умолчанию на основном сервере кластера стоит master версия БД. В нашем случае необходимо было вынести БД на отдельный сервер и добавить ещё один сервер с slave-версией БД. В bitrixenv нельзя просто так взять и перенести master с одного сервера на другой)

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

  • Даём роль mysql_slave серверу, на который мы планируем перенести БД
  • На целевом сервере меняем роль mysql_slave на роль mysql_master (автоматом старый mysql_master переходит в режим mysql_slave)
  • Удаляем роль mysql_slave на исходном сервере, бывшем master
  • PROFIT!!!

Мы последовали этой логике таким образом:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Указали сервер, которому хотим дать роль mysql_slave — db01. Дожидаемся окончания фоновых работ и видим такой результат:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Отлично, теперь переходим в

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Указываем app01 и ждём. В итоге должны увидеть примерно такой результат:

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Медленно и неотвратимо мы подошли к установке последней роли — mysql_slave. Для этого необходимо повторить действия, которыми мы устанавливали такую роль для db01, но указать уже db02.

Наконец, все серверы подключены и настроены.

Тюнинг производительности

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

  • Прокачиваем работу с сессиями. Подробно описано здесь. Вкратце — переключаем хранение сессий в memcached.
  • Удаляем файлы /bitrix/php_interface/after_connect_d7.php и /bitrix/php_interface/after_connect.php, т.к. команды из них обрывают конвейер кластера (если не используется bitrixenv, то их лучше оставить).
  • Отключаем модули php: apcu, ldap
  • Отключить модули БУС «Компрессия», и “Веб-аналитика” (по возможности).
  • Рассмотреть вариант использования локального кэша. Подробнее описано тут. В нашем случае прироста не было, но идея интересная. Решение имеет пару особенностей:Количество инстансов memcached должно равняться количеству web-нод.Для отдачи композитного кэша nginx-ом напрямую из локального memcached придётся поковырять конфиг nginx, из коробки не работает.
  • Количество инстансов memcached должно равняться количеству web-нод.
  • Для отдачи композитного кэша nginx-ом напрямую из локального memcached придётся поковырять конфиг nginx, из коробки не работает.
  • Перенести выполнение всех агентов на cron.

Выводы

В рамках данной статьи мы разобрали последовательность действий, необходимых для настройки кластера серверов на базе bitrixenv, а также некоторых возможных подводных камней. По итогам работы с bitrixenv, и кластером на нём, можем выделить плюсы и минусы данного подхода:

Плюсы bitrixenv

  • Время установки
    Установка и базовая настройка занимает менее 30 минут. Нет необходимости настраивать элементы LAMP (как интеграцию этих служб друг с другом, так и для корректной работы проектов на 1C-Bitrix).
  • Службы для ускорения работы сайта
    Установленные и настроенные службы, которые позволяют организовать более быстрое кэширование через memcached, а не файлы, поиск с использованием движка sphinx и функционал видеозвонков и чатов на корп.портале (модуль nginx push&pull). Кроме того, nginx в окружении настроен таким образом, что при включении соответствующих опций на сайте и в меню bitrixenv, кэш отдаётся при помощи nginx сразу из memcached (в обход httpd и php)
  • Кластеризация
    Возможность включить репликацию БД, без ковыряния настроек MySQL. Подключение произвольного количества web-нод, которые будут автоматически синхронизироваться друг с другом, и memcached-нод. Управление распределением нагрузки на web- и memcached-ноды как из меню bitrixenv, так и через админ-панель проекта на 1C-Bitrix. Плюс к этому, добавление новых серверов и ролей к ним не вызывает простой проекта (кроме разве что ролей серверов БД)

Минусы bitrixenv

  • Балансировщик всегда вместе с основной web-нодой
    Т.к. у нас уже был свой балансировщик, мы столкнулись с тем, что невозможно отказаться от встроенного в bitrixenv балансировщика. Нельзя в т.ч. разместить его отдельно от основной web-ноды.
  • Много лишнего софта для некоторых ролей
    Т.к. каждый сервер в пулле содержит полную версию окружения, то получается что на db-нодах стоят httpd, memcached, sphinx, пусть они и не используются. Аналогично можно встретить MySQL на сервере, который занимается только кэшированием, но в этом случае MySQL можно остановить в меню окружения или админ.панели сайта.
  • Php работает в режиме apache2handler
    Нет возможности безболезненно включить php в работу в режиме fcgi, не говоря уже о режиме nginx+php-fpm. Так же не получится поменять версию php, без танцев с бубном.

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

Используете ли Вы в своих Bitrix-проектах окружение bitrixenv?

Проголосовали 34 пользователя.

Воздержались 6 пользователей.

Ssl-cертификат для сайта, работающего на машине
bitrix vm следует устанавливать в веб-сервер nginx.

Делается это вручную, путем правки конфигурации веб-сервера nginx. Рассмотрим эту операцию пошагово.

Во-первых, нужно купить и иметь на руках файлы сертификата в нужном формате для веб-сервера nginx. Иногда приходится создавать такие файлы вручную. В интернете есть статьи, о том, как получить два файла
domain_ru.crt и domain_ru.key

Необходимо скопировать эти два сайта в папку /etc/nginx/ssl/
Предполагается, что сертификаты всех сайтов, расположенных на текущем bitrix vm, будут храниться в данной папе.

Затем необходимо открыть и отредактировать файлы конфигурации сайта

Примечание: если ваш сайт установлен в папку /home/bitrix/www, то редактировать нужно файлы

В файл /etc/nginx/bx/site_avaliable/bx_ext_ssl_domain.ru.conf необходимо включить наши файлы сертификата.

Для этого комментируем строчку include bx/conf/ssl.conf; (вставляем впереди нее #)
а вместо нее вставляем содержимое файла /etc/nginx/bx/conf/ssl.conf

Когда мы вставили содержимое файла /etc/nginx/bx/conf/ssl.conf вместо строчки, необходимо указать наши файлы в строчках ssl_certificat и ssl_certificate_key:

Теперь нам нужно отредактировать файл /etc/nginx/bx/site_avaliable/bx_ext_domain.ru.conf таким образом, чтобы происходил редирект сайта с http://domain.ru на https://domain.ru

Читайте также:  Лучшие программы для создания сайта

Примечание: СЕО-продвиженцы часто требуют, чтобы редирект не распространялся на файл robots.txt, это мы и учитываем здесь

Примечание: если не требуется добавить файл robots.txt в исключение, то достаточно создать файл в корне сайта /home/bitrix/ext_www/domain.ru/.htsecure с пустым содержимым. По этому же файлу меню виртуальной машины определяет режим работы сайта по https.

проверяем успешность операции и перезапускаем ngixn для применения настроек

Если возникли ошибки в конфигурации – их нужно устранить. Если все успешно – перезапускам nginx для применения настроек

Все, мы установили сертификат для сайта klausauto.ru. Открываем браузер – и проверяем результат. Если видим зеленый замочек – значит все получилось

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM!

Назад в раздел

С версии 7.2.2 битрикс-машины появилась возможность подключать бесплатные валидные SSl-сертификаты от Lets Encrypt прямо из меню виртуальной машины.

Let’s Encrypt — центр сертификации, начавший работу в бета-режиме с 3 декабря 2015 года, предоставляющий бесплатные криптографические сертификаты для HTTPS. Процесс выдачи сертификатов полностью автоматизирован. Сертификаты выдаются только на 3 месяца для предотвращения инцидентов безопасности.

1/ https://community.letsencrypt.org/t/which-browsers-and-operating-systems-support-lets-encrypt/4394
2/ Firefox. Как мимимум с 4.0 (возможно с 1.0) работает. (StartSSL в древних лисах работать не будет). Все современные лисы работают всеми CA.
3/ Thunderbird. Точно все современные версии на всех ОС (включая wosign. StartSSL в древних версиях не поддерживается)
4/ IE и Edge. Минимум 8 версия для всех. IE6 точно не поддерживается, по IE7 в зависимости от условий.
5/ Chrome и Cromium. Поддержка ОС аналогично встроенной ОС криптоапи (древние макоси, линуксы и winXP не будут работать ни с каким CA).
6/ Safari на всех современных Apple-устройствах точно работает.
7/ Android точно работает с версии 4.2 со всеми . Версия 2.0.6 (Android browser 2.0.6 Webkit 530.17) точно НЕ работает.
8/ Java не работает с letsencrypt.
9/ wget и curl могут не работать на старых системах

Как установить бесплатный ssl сертификат от Lets Encrypt в битрикс-машине?

Мастер самостоятельно запросит и установит сертификат из сети.
Поддерживается ввод нескольких сайтов, через запятую (test1.bx, test2.bx).

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

Что делать, если сертификат не устанавливается и битрикс машина выдает ошибку?

Мое знакомство с данным новшеством прошло именно так: после настройки сертификата фоновая задача в машине завершалась с ошибкой:

Смотрим логи и выясняем подробности. Директория /opt/webdir/temp содержит логи задач, смотрим по нашей задаче site_certificate_1113161018.

Первый лог /opt/webdir/temp/site_certificate_1113161018/status, в нем есть строчка с прерыванием, а также видим и второй лог:

С этого места становиться понятно, что машина установила библиотеку dehydrated в папку /home/bitrix/dehydrated, а лог ее выполнения расположен в dehydrated_update.log

Смотрим второй лог /home/bitrix/dehydrated_update.log, в нем тоже есть ошибка:

Выходит, что для проверки требуется доступность сайта по http и https с самоподписанным сертификатом, дабы проверить права владения на оба сайта.

Поэтому настроим редирект и еще раз запустим получение ключа:

1/ Отключаем редирект с http и https

2/ Создаем вручную папку на сайте /.well-known/acme-challenge/ с текстовым файлом внутри:

и проверяем чтобы этот файл корректно открывался для http и https: http://www.goooodsite.ru/.well-known/acme-challenge/dummychallengefile https://www.goooodsite.ru/.well-known/acme-challenge/dummychallengefile

3/ Запускаем заново, и опять ошибка. Опять смотрим логи задачи. На этот раз сертификат получен, а ошибка в конфигурации сайта в nginx: /etc/nginx/bx/site_avaliable/bx_ext_ssl_www.goooodsite.ru.conf

4/ ошибку устраняем (лишняя директива из-за авто-вставки настроек в файл) и видим что сертификат добавился в конфиг, а сами сертификаты хранятся тут /home/bitrix/dehydrated/certs/:

5/ nginx перезапускаем, редирект из http в https возвращаем. Сертификат добавлен.

Вот собственно путь отладки и исправления ошибки авто-установки сертификата, если сертификат был установлен на сайте, как написано в статье «Установка ssl-сертификата для битрикс окружения bitrix vm».

Наши решения используют дополнительные библиотеки а также требуют дополнительной настройки сервера под высокие нагрузки, чтобы сайт работал стабильно. Например при запуске выгрузок в многопоточном режиме или же каталогов большого размера. Что же надо сделать чтобы настроить типовое окружение Битрикс под ОС Centos 7 для бесперебойной работы наших модулей?

Давайте для начала перечислим конфигурационные файлы в которых проводиться изменение основных настроек сервера под управлением ОС Centos 7 и установленным окружением 1С-Битрикс.

Главным конфигурационным файлом по умолчанию является /etc/rc.d/init.d/bvat — это скрипт автоматической настройки в нем прописаны параметры используемые веб окружением Битрикс для автоматической настройки под имеющиеся физические ресурсы сервера. Данный скрипт удобен в использовании и позволяет в полностью автоматическом режиме применить настройки по умолчанию, задействовав отведенные серверу ресурсы.

Кроме него есть и конфигурационный файл сервера баз данных — /etc/mysql/conf.d/bvat.cnf  в котором хранятся переменные сервера MySQL, перечислим рекомендуемые значения при наличии на вашем сервере 64 гигабайт физической памяти:

Но как все сделанное человеком, он не может настроить ваш сервер идеально, для тонкой настройки под конкретные рекомендации нужно использовать ручное управление конфигурационными файлами. Но часто под несложные проекты настраиваемых им рекомендуемых параметров MySQL, PHP и Apache в зависимости от ресурсов сервера бывает вполне достаточно, и если у вас не возникает никаких проблем, мы бы порекомендовали не отключать автоматическое конфигурирование.

Но в случаях если возникает необходимость изменить дефолтные настройки которые не подходят данный скрипт можно поправить или же вообще отключить автоматическую настройку сервера. Например, наша практика показывает, что при большом размере базы данных, настройки, сделанные через bvat, могут приводить к падению служб с ошибкой «out of memory» или отказом в обслуживании.

Разработчики BitrixVM предусмотрели возможность изменения настроек без отключения скрипта автонастройки bvat. Для этого необходимо внести изменения в специальные конфигурационные файлы (в случае их отсутствия надо создать соответсвующие по указанным путям):

/etc/php.d/bitrixenv.ini   — файл хранящий основные настройки сервера

/etc/httpd/bx/conf/prefork.conf — файл хранящий основные параметры сервера по выделению памяти

/etc/php.d/z_bx_custom.ini   — файл хранящий дополнительные настройки PHP

/etc/httpd/bx/custom/z_bx_custom.conf   — файл хранящий дополнительные настройки Apache

/etc/mysql/conf.d/z_bx_custom.cnf   — файл хранящий дополнительные настройки  MySQL

/etc/nginx/bx/conf/z_bx_custom.conf — файл хранящий дополнительные настройки  nginx

/etc/nginx/bx/conf/im_settings.conf  — файл хранящий настройки nginx-push-stream-module

Теперь перечислим основные конфигурационные файлы
/etc/php.ini  — файл хранящий настройки PHP
/etc/my.cnf   — файл хранящий настройки сервера базы данных MySQL
/etc/nginx/nginx.conf   — файл хранящий настройки nginx

дополнительные используемые конфигурационные файлы
/etc/php.d/opcache.ini  — файл хранящий настройки используемого акселератора opcache при условии его использования на сервере, кстати очень советуем его использовать так как он ускоряет выполнение PHP путем сохранения скомпилированного кода в памяти, таким образом исключается постоянное выполнение PHP сценария при каждом обращении к коду. Подобное кэширование и оптимизация работы PHP серьезно снижает нагрузку на ресурсы вашего сервера и поднимает его общую производительность.

кроме того есть еще один конфигурационный файл в котором можно переопределить локальные значения для конкретного сайта — /home/bitrix/www/.htaccess или же в доп сайтах /home/bitrix/ext_www/site1.ru/.htaccess и значения переменных PHP указанные в нем будут самые приоритетные в рамках конкретного сайта. Поэтому один из самых простых способов настройки — простая правка файла .htaccess через текстовый редактор файлового менеджера БУС.

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

Рассматриваем вариант последовательного ввода команд при подключении к серверу по SSH

Установка библиотеки optipng jpegoptim в для VMBitrix (CentOS)
yum -y install optipng jpegoptim

После инсталяции библиотек надо выполнить его полный рестарт
либо же для применения настроек конкретного сервиса, перезагрузить конкретную службу
рестарт апача — systemctl restart httpd.service
рестарт базы данных — service mysqld restart
рестарт nginx — service nginx restart

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

Более подробно ознакомиться со всеми нюансами настройки сервера можно в обучающем курсе от Битрикса — https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=37

Если вы не хотите сидеть и разбираться с настройками, переустанавливать ПО сервера и доводить настройки до оптимальных под ваш проект, можете заказать отдельную услугу по настройке вашего сервера у нас — https://www.acrit-studio.ru/services/settings-trading-platforms/installation-vmbitrix-centos/

Оцените статью
Хостинги