Переход с Nginx-PushStreamModule на Bitrix Push server 2.0

Урок 310 из 741
Автор: Марина Павлова
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
3 из 5
Просмотров: 35194
Дата изменения: 22.08.2024
Недоступно в лицензиях:
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Старт, Стандарт

  Общая информация

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

Последние версии модулей продуктов «1С-Битрикс» работают намного лучше с новым сервером очередей Bitrix Push server 2.0. Например, телефония и чаты работают с ним значительно быстрее, т.к. коммуницируют с пользователями напрямую, минуя PHP.

Внимание: Поддержка старых версий серверов очередей: Nginx-PushStreamModule 0.3.4/0.4.0 и Bitrix Push server 1.0 прекращена осенью 2021 года. Перейдите c Nginx-PushStreamModule на новый сервер очередей Bitrix Push server 2.0 с помощью инструкции этого урока.

  1. Обновление VMBitrix

Обновите виртуальную машину VMBitrix до последней стабильной версии: 2. Configure localhost settings > 6. Update server.

Update server

Важно! Обязательно перед обновлением сделайте резервное копирование вашей VMBitrix. Подробнее об обновлении виртуальной машины VMBitrix читайте в специальном курсе.

  2. Установка Bitrix Push server 2.0

По умолчанию в виртуальной машине VMBitrix версии 7.4.4 и ниже в качестве сервера очередей используется Nginx-PushStreamModule.

В главном меню виртуальной машины VMBitrix: 9. Configure Push/RTC service for the pool смотрим, какой сервер используется в качестве сервера очередей. В данном примере видим, что это действительно Nginx-PushStreamModule:

Nginx-PushStreamModule

Если тип сервера очередей будет NodeJS-PushServer, то можно переходить к шагу 3. Bitrix Push server 2.0 в продуктах «1С-Битрикс».

Выбираем пункт меню 1. Install/Update NodeJS RTC service, вводим название хоста Hostname и подтверждаем установку:

Install/Update NodeJS RTC service

Дожидаемся, пока задача по установке и запуску службы NodeJS-PushServer будет закончена:

NodeJS RTC Push&Pull

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

  3. Bitrix Push server 2.0 в продуктах «1С-Битрикс»

В административном разделе в Настройки > Настройки продукта > Настройки модулей > Push and Pull мы видим, что сервер очередей настроен на модуль nginx-push-stream-module .

Перед переходом на Bitrix Push server 2.0 вам нужно предварительно сбросить настройки сервера очередей. Для этого нажмите на кнопку По умолчанию:

Важно! Нажимать дополнительно на кнопку Сохранить не нужно!

Чтобы включить новый сервер очередей Bitrix Push server 2.0, в опции Использовать "Push server": установленный локально выберите Виртуальная машина 7.3 и новее (Bitrix Push server 2.0) и сохраните настройки:

Нажмите на рисунок, чтобы увеличить

Все готово. Как правило, никаких настроек больше не требуется.

Примечание: В актуальных версиях На декабрь 2022 года это версия 22.300.0. модуля Push and Pull в настройках доступен только один вариант локального сервера очередей - Bitrix Push server 2.0.

  Возможные ошибки

При установке и первом запуске Bitrix Push server 2.0 создается уникальный секретный код в файле настроек сервера очередей /etc/push-server/push-server*.json в секции security в параметре key:

"security": {
	"key": "<ваш секретный ключ>"
},

В виртуальной машине BitrixVM при первом запуске Bitrix Push server 2.0 этот код автоматически прописывается в файл настроек ядра системы /bitrix/.setting.php и в базу данных, а также он виден в административном интерфейсе в поле Код-подпись для взаимодействия с сервером:

Бывают ситуации, когда по каким-либо причинам в файле настроек ядра /bitrix/.setting.php и в базе данных секретный код отличается от того, который прописан в настройках сервера очередей. Из-за этого сервер очередей работает некорректно, сообщения не доставляются.

Чтобы решить эту проблему, необходимо в меню виртуальной машины BitrixVM пересоздать роль NodeJS-PushServer: 9. Configure Push/RTC service for the pool > 1. Install/Update NodeJS RTC service

Update NodeJS RTC Push&Pull

Если у вас свое серверное окружение, то можно сделать это вручную:

  1. Скопировать ключ из файла настроек сервера очередей /etc/push-server/push-server*.json.
  2. Перейти в административном интерфейсе продукта «1С-Битрикс»: Настройки > Настройки продукта > Настройки модулей > Push and Pull и сбросить настройки сервера очередей кнопкой По умолчанию.
  3. Скопированный ключ вставить в поле Код-подпись для взаимодействия с сервером и сохранить настройки.

После этого работа сервера очередей будет восстановлена.



Нам жаль это слышать… Но мы постараемся быть лучше!

Мы благодарны Вам за помощь в улучшении документации.

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