Настройка модуля Push and Pull для корпоративного портала 1С-Битрикс

Настройка модуля Push and Pull
для корпоративного портала 1С-Битрикс

Если у вас есть коробочная версия Битрикс24, и вы хотите использовать живую ленту, мгновенный чат, и получать push уведомления на телефон — вам понадобится модуль push and pull.

Под капотом у модуля модуль push and pull находится nginx с дополнительным модулем nginx-push-stream-module. Данный модуль не входит в стандартную поставку, поэтому для его подключения нужно собирать (компилировать) nginx из исходников.

Модуль nginx-push-stream-module есть в виртуальной машине битрикса (BitrixVM) из коробки. Поэтому самое простое решение данной задачи — развернуть BitrixVM и поставить на нее корпоративный портал.

Но если у вас нет BitrixVM и вы не хотите только ради этого переходить на нее — нужно скомпилировать nginx с поддержкой модуля nginx-push-stream-module из исходников, вручную.

Проблема

При работе с сайтом в публичной части выводится красная полоска с сообщением об ошибке “Отсутствует соединение с сервером”. Эта ошибка говорит о наличии проблемы с модулем push and pull.

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

Можно выделить ряд характерных сообщений об ошибках (их можно найти в админке или в логах), свидетельствующих о необходимости настройки модуля push and pull:

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

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

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

Сборка nginx с модулем nginx-push-stream-module

Соберите NGINX с поддержкой модуля nginx-push-stream-module;

но не сказано в деталях как его собрать. Об этом сказано на сайте самого модуля nginx-push-stream-module, в разделе Installation. Там подробно описан процесс сборки, но есть некоторые нюансы, которые я хочу рассмотреть.

Внимание! Работа модуля Push and Pull поддерживается только до версии 0.5 nginx-push-stream-module. Более свежии версии не поддерживаются, так как для работы Push and Pull разрабатывается специальное решение от "1С-Битрикс".

Еще одна сложность заключается в том, что версия модуля nginx-push-stream-module завязана на версию nginx. Версия моего текущего nginx была 1.12 и мне не удалось собрать из исходников эту же версию nginx, которая бы скомпилировалась с модулем nginx-push-stream-module версии 0.5 или 0.5.4. Поэтому я решил попробовать собрать nginx последней версии с последней версией модуля nginx-push-stream-module.

В конечном счете, чтобы собрать nginx у меня получилась такая конфигурация:

—with-http_ssl_module — этот модуль нужен обязательно, если на сайте используется https. А для этого модуля нужна openssl библиотека. Но последняя версия (1.1.0) openssl библиотеки не годится, так как с ней nginx не компилируется — это известный баг и пока что нужно использовать старую версию(1.0.2).

—with-zlib — Библиотека нужна для модуля ngx_http_gzip_module. Указывается путь к папке с исходниками библиотеки.

—with-pcre — Библиотека нужна для использования регулярных выражений в директиве location и для модуля ngx_http_rewrite_module. Указывается путь к папке с исходниками библиотеки.

—add-module=../nginx-push-stream-module — подключаем модуль nginx-push-stream-module. Указывается путь к папке с исходниками библиотеки.

То есть, сначала нужно скачать исходники всех библиотек, распаковать их (например в текущей папке) и указать путь к ним.

Итоговый список bash команд (запускать от имени пользователя root ), чтобы собрать nginx со всеми необходимыми модулями:

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

nginx binary file: "/usr/local/nginx/sbin/nginx" — в этом месте будет располагаться новый собранный бинарник, отсюда его нужно будет копировать вместо старого.

После успешного выполнения команды make install (она может выполняться долго), должно получиться примерно следующее:

Если появились какие-то сообщения об ошибках или есть строки красного цвета, значит что-то пошло не так.

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

Подключение собранного nginx

Список bash команд для подключения нового бинарника, в общем виде:

/path/to/old/ — замените на свой путь к старому бинарнику.

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

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

Настройка nginx для модуля push and pull

1) В nginx добавить в блок server<> (для виртуального хоста) локейшены из битриксовой документации

2) В nginx добавить общие настройки модуля push and pull.

Нужно создать новый файл в папке с конфигами nginx для виртуального хоста, например push_and_pull. conf и поместить в него настройки. Некоторые строки пришлось закомментировать, так как они нужны только для BitrixVM.

3) Включить модуль push and pull в настройках в админке

Теперь можно тестировать работу модуля push and pull — сообщения в чате должны приходить мгновенно, а в живой ленте должны появляться изменения (комментарии, просмотры, лайки, записи) без перезагрузки страницы.

Настройка модуля Bitrix NodeJS RTC

Push сервер на основе nginx не справлялся с нагрузкой, которую создавали пользователи облачного сервиса Битрикс24, и поэтому появилась необходимость в разработке нового push сервера — NodeJS RTC, у которого под капотом Node. js. Новый push сервер встроен в BitrixVM версии 7+ и есть инструкция по его настройке. Мне не удалось найти информацию, как его настраивать без использования BitrixVM.

Для любой коробочной версии корпоративного портала, в которой количество активных пользователей намного меньше, чем в облачной версии — вполне хватит старой реализации push сервера на основе nginx.

Заключение

Чтобы запустить модуль push and pull необязательно ставить BitrixVM.

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

В данном случае опробована связка Debian + nginx 1.2.0 + nginx-push-stream-module 0.5.4 + bitrix 17.5.8 — все работает.

Ошибки в десктопном приложении

Александр Рабенок

При работе с десктопным приложением Битрикс24 могут возникнуть ошибки. Давайте рассмотрим из-за чего они возникают и как их решить.

Неверный логин или пароль

Не удалось установить соединение с сервером

Обязательно проверьте, верно ли вы указали доменное имя вашего Битрикс24. Ошибка также возникнет, если вы ошиблись в нем.

Неправильный одноразовый код

Одноразовый код, который вы вводите для двухэтапной авторизации не подходит.

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

Домен вашего Битрикс24 изменен

Такая ошибка возникает, если у вашего Битрикс24 сменился домен.

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

Доступ к серверу невозможен

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

Проверьте, правильно ли вы вводите адрес вашего Битрикс24, и в случае повторения ошибки обратитесь к администратору.

Сервер не готов к работе

Данная ошибка возникает, если на вашем сервере не установлено ПО Битрикс24 либо не включен модуль Веб-мессенджер.

Проверьте, верно ли введен адрес портала, и в случае повторения обратитесь к администратору.

SSL-сертификат сервера не прошел проверку

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

Проверьте, правильно ли вы ввели доменное имя, и обратитесь к администратору.

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

Источники:

https://dermanov. ru/exp/configure-push-and-pull-module-for-bitrix24/

https://helpdesk. bitrix24.ru/open/7297065/

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: