Ошибка не удалось подключиться к модулю nginx push stream отправки мгновенных сообщений

Форум

 

Пользователь 3952232

Заглянувший

Сообщений: 10
Регистрация: 13.02.2020

#1

0

13.02.2020 11:43:30

Добрый день. Судя по форуму моя тема довольно часто обсуждаема, но решения я найти не смог
Скачал с сайта инсталятор, который загрузил мне гипервизор и виртуальную машину к ней.
Из главного меню получил сертификат ssl
Теперь  в тестировании конфигурации пишет

Код
Ошибка! Не удалось подключиться к модулю nginx-push-stream отправки мгновенных сообщений
2020-Feb-13 10:28:22 Живые комментарии в ленте сообщений (check_pull_comments): Fail
Ошибка! Не настроен модуль nginx push-stream, который необходим для отображения комментариев в живой ленте в реальном режиме времени
2020-Feb-13 10:28:22 Видеозвонки (check_turn): Fail
Ошибка! Не настроен модуль nginx push-stream, который необходим для осуществления видеозвонков

Подскажите, как понять в чём проблема?
До этого создавал тему тут

https://dev.1c-bitrix.ru/support/forum/forum23/topic128618/

 

Пользователь 136059

Гуру

Сообщений: 5430
Баллов: 1074
Регистрация: 16.07.2012

#2

0

13.02.2020 12:01:59

Цитата
Матвей Михайлов написал:
Из главного меню получил сертификат ssl

Теперь отктройте в админке вкладку — Управление масштабированием и на квадратике Push нажмите установить (или удалить, а потом установить)

Голосуй за идеи по развитию API Bitrix:
https://idea.1c-bitrix.ru/26707/
https://idea.1c-bitrix.ru/26709/
https://idea.1c-bitrix.ru/the-local-extension-folder-js/

 

Если навести курсор на квадратик PUSH, то ничего сверху не всплывает. Сам квадратик синего цвета

 

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

 

Коллеги. Буду рад любой помощи. Первый раз работаю с Битрикс и сам разобраться не могу

 

Пользователь 988219

Посетитель

Сообщений: 53
Баллов: 8
Регистрация: 03.03.2017

#7

0

04.03.2020 09:16:23

https://i.imgur.com/mGmGRud.png

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

Введение

Если у вас есть коробочная версия Битрикс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:

  • потеряно соединение с сервером
  • выключена опция nginx push stream module в настройках модуля push and pull
  • модуль nginx-push-stream работает некорректно
  • не удалось подключиться к модулю nginx-push-stream отправки мгновенных сообщений
  • не работает бизнес-чат в реальном времени (check_pull_stream): fail
  • не настроен модуль nginx push-stream-module
  • требуется установка nginx-push-stream-module
  • требуется настройка bitrix push server
  • требуется компиляция nginx для модуля push and pull для корпоративного портала

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

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

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

В учебном курсе Администратор. Модули → Push and Pull сказано

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

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

Текущая версия модуля nginx-push-stream-module 0.5.4, а в документации битрикса сказано:

Внимание! Работа модуля 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 у меня получилась такая конфигурация:

$ ./configure --add-module=../nginx-push-stream-module --with-zlib=./zlib-1.2.11 --with-openssl=./openssl-1.0.2n --with-pcre=./pcre-8.41 --with-http_ssl_module

--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 со всеми необходимыми модулями:

# clone the nginx-push-stream-module project
git clone https://github.com/wandenberg/nginx-push-stream-module.git
NGINX_PUSH_STREAM_MODULE_PATH=$PWD/nginx-push-stream-module

# get desired nginx version (works with 1.2.0+)
wget http://nginx.org/download/nginx-1.2.0.tar.gz

# extract nginx
tar xzvf nginx-1.2.0.tar.gz
cd nginx-1.2.0

# download and extract zlib module
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xf zlib-1.2.11.tar.gz

# download and extract openssl module
wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
tar -xf openssl-1.0.2n.tar.gz

# download and extract pcre module
wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz
tar -xf pcre-8.41.tar.gz

# configure and build
./configure --add-module=../nginx-push-stream-module --with-zlib=./zlib-1.2.11 --with-openssl=./openssl-1.0.2n --with-pcre=./pcre-8.41 --with-http_ssl_module
make build

# install and finish
make install

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

После успешного выполнения команды ./configure, должно получить примерно следующее:

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

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

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

Теперь можно проверить, правильно ли собрался nginx, есть ли там указанные модули /usr/local/nginx/sbin/nginx -V:

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

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

Порядок действий:

  • положить новый бинарник в рабочую папку вместо старого ( у меня /usr/sbin/nginx)
  • проверить и настроить пути к конфигам
  • остановить службу nginx
  • проверить, что нет ошибок
  • перезапустить службу nginx

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

service nginx stop
mv /path/to/old/nginx /path/to/old/nginx_backup
mv /usr/local/nginx/sbin/nginx /path/to/old/nginx
ngint -t
service nginx start

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

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

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

Но если путь к конфигам отличается от стандартного и не был указан при компиляции — может понадобится прописать путь к старому конфигу.

В моем случае новый бинарник подтягивал конфиг из /usr/local/nginx/conf/nginx.conf, а старые конфиги былы тут /etc/nginx/nginx.conf. Для решения этой проблемы достаточно создать симлинк на старый путь:

cd /usr/local/nginx/
mv conf/ conf_del
ln -s /etc/nginx/ ./conf

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

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

# Location for long-polling connections
location ^~ /bitrix/sub {
    # we don't use callback and droppped it (XSS)
    if ( $arg_callback ) {
        return 400;
    }

    push_stream_subscriber            long-polling;
    push_stream_allowed_origins "*";
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_last_received_message_tag    $arg_tag;
    if ($arg_time) {
        push_stream_last_received_message_time "$arg_time";
    }
    push_stream_longpolling_connection_ttl    40;
    push_stream_authorized_channels_only    on;
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

# Location for websocet connections
location ^~ /bitrix/subws/ {
    push_stream_subscriber websocket;
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_websocket_allow_publish    off;
    push_stream_ping_message_interval    40s;
    push_stream_authorized_channels_only     on;
    push_stream_last_received_message_tag    "$arg_tag";
    push_stream_last_received_message_time    "$arg_time";
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

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

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

# Common settings for nginx-push-stream-module
push_stream_shared_memory_size 256M;
push_stream_max_messages_stored_per_channel 1000;
push_stream_max_channel_id_length 32;
push_stream_max_number_of_channels 200000;
push_stream_message_ttl 86400;

# поддержка мобильных платформ, для http запросов
server {
    # nginx-push-stream-module server for push & pull

    listen 8893;
    server_name _;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# поддержка мобильных платформ, для https запросов
# SSL enabled server for reading personal channels
server {
    listen 8894;
    server_name _;
    
    #include bx/conf/ssl.conf;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# для публикации сообщений
# Server to push messages to user channels
server {
    listen 127.0.0.1:8895;
    server_name _;
    
    location ^~ /bitrix/pub/ {
        push_stream_publisher admin;
        push_stream_channels_path $arg_CHANNEL_ID;
        push_stream_store_messages on;
        allow 127.0.0.0/8;
        deny all;
    }
    
    location ^~ / { deny all; }
    
    # Include error handlers
    #include bx/conf/errors.conf;
}

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

Значение параметра На сервер установлена ближе всего к Виртуальная машина 4.4 и выше (nginx-push-stream-module 0.4.0), поэтому устанавливаем именно этот вариант.

Теперь можно тестировать работу модуля 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 — все работает.

Полезные ссылки

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

  • Зачем настраивать модуль Push&Pull

Инструкции по сборке nginx

  • Сборка nginx из исходных файлов — офиц. документация
  • Пример сборки nginx с добавлением модуля ngx_pagespeed
  • Учебный курс — Администратор. Модули — Push and Pull
  • Как установить nginx push-and-pull на Debian (для Bitrix)
  • Push and Pull for Bitrix without BitrixEnv

Исходники библиотек

  • nginx core
  • nginx-push-stream-module (push and pull)
  • zlib
  • openssl
  • pcre

Решение возможных проблем

  • git command not found
  • make command not found
  • configure: error: You need a C++ compiler for C++ support
  • nginx — src/core/ngx_sha1.h:19:17: no such file or directory

(@stalker_slx)

Estimable Member

Присоединился: 4 года назад

Журнал проверки системы

2020-Apr-14 17:12:19 Наличие необходимых модулей php (check_php_modules): Ok

Все необходимые модули установлены

2020-Apr-14 17:12:19 Обязательные параметры PHP (check_php_settings): Fail

Ошибка! Вы используете веб-окружение 1С-Битрикс старой версии (7.3.3), установите актуальную версию, чтобы не было проблем с настройкой сервера (7.4.3

).

2020-Apr-14 17:12:19 Модули веб-сервера (check_security): Ok

Конфликтов не выявлено

2020-Apr-14 17:12:19 Значения переменных сервера (check_server_vars): Ok

Корректные

2020-Apr-14 17:12:19 Сохранение сессии (check_session): Ok

50% done

2020-Apr-14 17:12:19 Сохранение сессии (check_session): Ok

Успешно

2020-Apr-14 17:12:19 Параметры настройки UTF (mbstring и константа BX_UTF) (check_mbstring): Ok

Правильные. Сайт работает в UTF кодировке

2020-Apr-14 17:12:19 Служебные скрипты в корне сайта (check_install_scripts): Ok

Отсутствуют

2020-Apr-14 17:12:19 Работа с сокетами (check_socket): Fail

Connection to ssl://bitrix24.mycompany.com:443       Fail

Socket error [0]:

Ошибка! Не работает

2020-Apr-14 17:12:20 Выполнение агентов на cron (check_bx_crontab): Ok

Успешно

2020-Apr-14 17:12:20 Бизнес-чат в реальном времени (check_pull_stream): Fail

Server version: 3 (Bitrix Push server)

Connection to ssl://bitrix24.mycompany.com:443       Fail

Socket error [0]:

Ошибка! Не удалось подключиться к модулю nginx-push-stream чтения мгновенных сообщений

2020-Apr-14 17:12:20 Живые комментарии в ленте сообщений (check_pull_comments): Fail

Ошибка! Не настроен модуль nginx push-stream, который необходим для отображения комментариев в живой ленте в реальном режиме времени

2020-Apr-14 17:12:20 Видеозвонки (check_turn): Fail

Ошибка! Не настроен модуль nginx push-stream, который необходим для осуществления видеозвонков

2020-Apr-14 17:12:20 Мобильное приложение Битрикс24 (check_access_mobile): Ok

Connection to checker.internal.bitrix24.com:80       Success

== Request ==

GET /check/?license_hash=ee054a156a095bf850f0e0539a11dc45&host=bitrix24.mycompany.com&port=443&https=Y HTTP/1.1

host: checker.internal.bitrix24.com

== Response ==

HTTP/1.1 200 OK

Content-Type: text/plain

Date: Tue, 14 Apr 2020 14:12:20 GMT

Server: nginx/1.8.1

X-Powered-By: PHP/5.3.3

Content-Length: 46

Connection: keep-alive

== Body ==

Check: OK

Status: 200

Connection: keep-alive

==========

Connection to checker.internal.bitrix24.com:80       Success

== Request ==

GET /check/?license_hash=ee054a156a095bf850f0e0539a11dc45&host=bitrix24.mycompany.com&port=8894&https=Y HTTP/1.1

host: checker.internal.bitrix24.com

== Response ==

HTTP/1.1 200 OK

Content-Type: text/plain

Date: Tue, 14 Apr 2020 14:12:20 GMT

Server: nginx/1.8.1

X-Powered-By: PHP/5.3.3

Content-Length: 46

Connection: keep-alive

== Body ==

Check: OK

Status: 403

Connection: keep-alive

==========

Успешно

2020-Apr-14 17:12:21 Уведомления пользователям на мобильные устройства (push уведомления) (check_push_bitrix): Ok

Connection to ssl://cloud-messaging.bitrix24.com:443 Success

Успешно

2020-Apr-14 17:12:21 Работа с документами через Google Docs и MS Office Online (check_access_docs): Ok

Успешно

2020-Apr-14 17:12:21 Битрикс24.Диск. Быстрая работа с файлами (check_fast_download): Warning

Замечание. Не удалось проверить из-за ошибки в работе с сокетами

2020-Apr-14 17:12:21 Поиск по содержимому документов (check_search): Ok

Успешно

2020-Apr-14 17:12:21 Отправка почтовых уведомлений (check_mail): Ok

Успешно

2020-Apr-14 17:12:22 Доступ к облачным сервисам 1С-Битрикс (check_ca_file): Ok

Успешно

2020-Apr-14 17:12:22 Интеграция с почтой внутри компании (check_connect_mail): Ok

Успешно

2020-Apr-14 17:12:22 Интеграция с соцсетями (check_socnet): Ok

Успешно

2020-Apr-14 17:12:22 Работа с REST API (check_rest): Ok

Успешно

2020-Apr-14 17:12:22 Публикация сообщений в живую ленту из почты (check_mail_push): Warning

Замечание. Не удалось получить MX запись для домена bitrix24.mycompany.com

2020-Apr-14 17:12:22 Доступ снаружи к Экстранет (check_extranet): Ok

Успешно

2020-Apr-14 17:12:22 Редактирование документов в MS Office (check_webdav): Warning

Замечание. Не удалось проверить из-за ошибки в работе с сокетами

2020-Apr-14 17:12:22 Интеграция с внешними приложениями (MS Office, Outlook, Exchange) через безопасное подключение к порталу (check_socket_ssl): Warning

Connection to ssl://bitrix24.mycompany.com:443 (certificate check enabled)  Fail

Connection to ssl://bitrix24.mycompany.com:443       Success

Замечание. Сервер имеет невалидный SSL сертификат, возможны проблемы в интеграции с внешними приложениями

2020-Apr-14 17:12:22 Интеграция с Active Directory (check_ad): Warning

Замечание. Интеграция с AD сервером не настроена

2020-Apr-14 17:12:22 Единая авторизация в Windows сети (NTLM) (check_ntlm): Warning

Замечание. Выключена опция использования NTLM авторизации в настройках модуля ldap

2020-Apr-14 17:12:22 Оценка производительности сервера (check_perf): Warning

Замечание. Не удалось проверить из-за ошибки в работе с сокетами

2020-Apr-14 17:12:22 Ускорение открытия страниц (check_compression): Warning

Замечание. Не удалось проверить из-за ошибки в работе с сокетами

При установке виртуальной машины Битрикс в качестве Push-and-Pull сервера по умолчанию используется модуль Nginx под названием Nginx-PushStreamModule. Этот подход считается устаревшим, поэтому в консоли Bitrix env есть возможность заменить его на NodeJS RTC service. Казалось бы нет ничего проще выбрать в консоли пункт 10 (Configure Push/RTC service), затем пункт 1 (Install/Update NodeJS RTC Service), дождаться выполнения фонового задания и начать пользоваться современным инструментом. Но к сожалению в некоторых случаях все проходит не так гладко. Когда я стал проводить описанные действия – выполнение команд завершилось ошибкой, а я получил неработающий портал клиента. Версия виртуальной машины, где произошла эта ошибка была 7.0.3.

Ошибка при настройке push and pull сервера

Причем «откатить» изменения через консоль не удалось, так как NodeJS RTC service не установился. Оказалось, что ключевая причина в том, что перестал запускаться Nginx. При попытке его запустить выдавалась следующая ошибка: nginx: [emerg] host not found in upstream “server1:8010”.

Nginx ошибка при запуске

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

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

Сначала я открыл главный файл конфигурации nginx (/etc/nginx/ nginx.conf). Дата его изменения была давнишняя, поэтому я решил, что причина неисправности не в нем. В этом файле есть подключение других конфигурационных файлов из папок /etc/nginx/bx/conf/, /etc/nginx/bx/settings/, а также /etc/nginx/bx/site_enabled/.

Зайдя в эти папки, я обнаружил, что в них есть файлы со «свежей» датой создания. Открыв параллельно соответствующие папки другой ВМ, где NodeJS RTC service не установлен, я обнаружил, что таких файлов там нет. Значит их можно и нужно удалить.

Сначала удаляем следующие файлы:

  • /etc/nginx/bx/settings/rtc-im_settings.conf
  • /etc/nginx/bx/site_enabled/rtc-server.conf

Далее удаляем файл:

  • /etc/nginx/bx/conf/rtc-im_subscrider.conf

НО на него в этой папке есть символическая ссылка. Ее тоже нужно удалить и создать снова, но указывать она должна уже на другой файл: push-im_subscrider.conf

Делается это командой

# ln –s /etc/nginx/bx/conf/im_subscrider.conf /etc/nginx/bx/conf/push-im_subscrider.conf

После выполнения этих действий, снова пытаемся запустить Nginx.

# service nginx restart или

# systemctl restart nginx.service

В моем случае он запустился без проблем и портал снова заработал.

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

Затем я обновил BitrixEnv до 7.3.4 и попробовал выполнить установку NodeJS RTC service снова. Обновление не помогло. Ситуация повторилась снова. Пришлось повторить все описанные выше действия еще раз.

Надеюсь, что когда вы будете читать эту статью, подобных проблем при настройке Push-and-Pull сервера в виртуальной машине Битрикс возникать не будет.

Введение

Если у вас есть коробочная версия Битрикс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:

  • потеряно соединение с сервером
  • выключена опция nginx push stream module в настройках модуля push and pull
  • модуль nginx-push-stream работает некорректно
  • не удалось подключиться к модулю nginx-push-stream отправки мгновенных сообщений
  • не работает бизнес-чат в реальном времени (check_pull_stream): fail
  • не настроен модуль nginx push-stream-module
  • требуется установка nginx-push-stream-module
  • требуется настройка bitrix push server
  • требуется компиляция nginx для модуля push and pull для корпоративного портала

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

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

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

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

В учебном курсе Администратор. Модули → Push and Pull сказано

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

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

Текущая версия модуля nginx-push-stream-module 0.5.4, а в документации битрикса сказано:

Внимание! Работа модуля 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 у меня получилась такая конфигурация:

$ ./configure --add-module=../nginx-push-stream-module --with-zlib=./zlib-1.2.11 --with-openssl=./openssl-1.0.2n --with-pcre=./pcre-8.41 --with-http_ssl_module

--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 со всеми необходимыми модулями:

# clone the nginx-push-stream-module project
git clone https://github.com/wandenberg/nginx-push-stream-module.git
NGINX_PUSH_STREAM_MODULE_PATH=$PWD/nginx-push-stream-module

# get desired nginx version (works with 1.2.0+)
wget http://nginx.org/download/nginx-1.2.0.tar.gz

# extract nginx
tar xzvf nginx-1.2.0.tar.gz
cd nginx-1.2.0

# download and extract zlib module
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xf zlib-1.2.11.tar.gz

# download and extract openssl module
wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
tar -xf openssl-1.0.2n.tar.gz

# download and extract pcre module
wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz
tar -xf pcre-8.41.tar.gz

# configure and build
./configure --add-module=../nginx-push-stream-module --with-zlib=./zlib-1.2.11 --with-openssl=./openssl-1.0.2n --with-pcre=./pcre-8.41 --with-http_ssl_module
make build

# install and finish
make install

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

После успешного выполнения команды ./configure, должно получить примерно следующее:

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

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

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

Теперь можно проверить, правильно ли собрался nginx, есть ли там указанные модули /usr/local/nginx/sbin/nginx -V:

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

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

Порядок действий:

  • положить новый бинарник в рабочую папку вместо старого ( у меня /usr/sbin/nginx)
  • проверить и настроить пути к конфигам
  • остановить службу nginx
  • проверить, что нет ошибок
  • перезапустить службу nginx

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

service nginx stop
mv /path/to/old/nginx /path/to/old/nginx_backup
mv /usr/local/nginx/sbin/nginx /path/to/old/nginx
ngint -t
service nginx start

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

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

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

Но если путь к конфигам отличается от стандартного и не был указан при компиляции — может понадобится прописать путь к старому конфигу.

В моем случае новый бинарник подтягивал конфиг из /usr/local/nginx/conf/nginx.conf, а старые конфиги былы тут /etc/nginx/nginx.conf. Для решения этой проблемы достаточно создать симлинк на старый путь:

cd /usr/local/nginx/
mv conf/ conf_del
ln -s /etc/nginx/ ./conf

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

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

# Location for long-polling connections
location ^~ /bitrix/sub {
    # we don't use callback and droppped it (XSS)
    if ( $arg_callback ) {
        return 400;
    }

    push_stream_subscriber            long-polling;
    push_stream_allowed_origins "*";
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_last_received_message_tag    $arg_tag;
    if ($arg_time) {
        push_stream_last_received_message_time "$arg_time";
    }
    push_stream_longpolling_connection_ttl    40;
    push_stream_authorized_channels_only    on;
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

# Location for websocet connections
location ^~ /bitrix/subws/ {
    push_stream_subscriber websocket;
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_websocket_allow_publish    off;
    push_stream_ping_message_interval    40s;
    push_stream_authorized_channels_only     on;
    push_stream_last_received_message_tag    "$arg_tag";
    push_stream_last_received_message_time    "$arg_time";
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

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

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

# Common settings for nginx-push-stream-module
push_stream_shared_memory_size 256M;
push_stream_max_messages_stored_per_channel 1000;
push_stream_max_channel_id_length 32;
push_stream_max_number_of_channels 200000;
push_stream_message_ttl 86400;

# поддержка мобильных платформ, для http запросов
server {
    # nginx-push-stream-module server for push & pull

    listen 8893;
    server_name _;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# поддержка мобильных платформ, для https запросов
# SSL enabled server for reading personal channels
server {
    listen 8894;
    server_name _;
    
    #include bx/conf/ssl.conf;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# для публикации сообщений
# Server to push messages to user channels
server {
    listen 127.0.0.1:8895;
    server_name _;
    
    location ^~ /bitrix/pub/ {
        push_stream_publisher admin;
        push_stream_channels_path $arg_CHANNEL_ID;
        push_stream_store_messages on;
        allow 127.0.0.0/8;
        deny all;
    }
    
    location ^~ / { deny all; }
    
    # Include error handlers
    #include bx/conf/errors.conf;
}

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

Значение параметра На сервер установлена ближе всего к Виртуальная машина 4.4 и выше (nginx-push-stream-module 0.4.0), поэтому устанавливаем именно этот вариант.

Теперь можно тестировать работу модуля 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 — все работает.

Полезные ссылки

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

  • Зачем настраивать модуль Push&Pull

Инструкции по сборке nginx

  • Сборка nginx из исходных файлов — офиц. документация
  • Пример сборки nginx с добавлением модуля ngx_pagespeed
  • Учебный курс — Администратор. Модули — Push and Pull
  • Как установить nginx push-and-pull на Debian (для Bitrix)
  • Push and Pull for Bitrix without BitrixEnv

Исходники библиотек

  • nginx core
  • nginx-push-stream-module (push and pull)
  • zlib
  • openssl
  • pcre

Решение возможных проблем

  • git command not found
  • make command not found
  • configure: error: You need a C++ compiler for C++ support
  • nginx — src/core/ngx_sha1.h:19:17: no such file or directory

There is a 1C-Bitrix box on the local network: Corporate portal 21.900.0 server is completely cut off from the Internet (company policy)
Of the errors, only sending mail and Access from the outside to the Extranet.
For ordinary users, it constantly crashes There is no connection to the server. and over time it just crashes, how can this be solved?
the signature code and settings are made according to the instructions, through the terminal it shows that everything is OK

Centos 7 BitriVM CRM
4 cores 16GB ECC RAM

Console errors

/rest/batch.json?logTag=pull.config:1          Failed to load resource: the server responded with a status of 401 (Unauthorized)
{"error":"NO_AUTH_FOUND","error_description":"Wrong authorization data"}

and

Pull: could not read push-server config.

this.loadConfig().catch(function(error)
{
self.starting = false;
self.sendPullStatus(PullStatus.Offline);
self.stopCheckConfig();
console.error(Utils.getDateForLog() + ': Pull: could not read push-server config. ', error);
result.reject(error);
}).then(function(config)


error: "access_denied"
error_description: "Access denied for this type of user"
ex: s {status: 401, ex: {…}}

UPDATE
.setting.php

return array (
  'utf_mode' =>
  array (
    'value' => true,
    'readonly' => true,
  ),
  'cache' => array(
    'value' => array (
        'type' => 'memcache',
        'memcache' => array(
            'host' => 'unix:///tmp/memcached.sock',
            'port' => '0'
        ),
        'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
    ),
  ),
'pull_s1' => 'BEGIN GENERATED PUSH SETTINGS. DON'T DELETE COMMENT!!!!',
  'pull' => Array(
    'value' =>  array(
        'path_to_listener' => "http://#DOMAIN#/bitrix/sub/",
        'path_to_listener_secure' => "https://#DOMAIN#/bitrix/sub/",
        'path_to_modern_listener' => "http://#DOMAIN#/bitrix/sub/",
        'path_to_modern_listener_secure' => "https://#DOMAIN#/bitrix/sub/",
        'path_to_mobile_listener' => "http://#DOMAIN#:8893/bitrix/sub/",
        'path_to_mobile_listener_secure' => "https://#DOMAIN#:8894/bitrix/sub/",
        'path_to_websocket' => "ws://#DOMAIN#/bitrix/subws/",
        'path_to_websocket_secure' => "wss://#DOMAIN#/bitrix/subws/",
        'path_to_publish' => 'http://127.0.0.1:8895/bitrix/pub/',
        'nginx_version' => '4',
        'nginx_command_per_hit' => '100',
        'nginx' => 'Y',
        'nginx_headers' => 'N',
        'push' => 'Y',
        'websocket' => 'Y',
        'signature_key' => 'WKb2cJF4sJ99K4zYlkGDhyULVe05G1YLoLgjIFGcADqV31lLkMGiRtgBx4uXD5UYTqs0EOOm6w6RJE2Gwvrveqafg9angPwV1zUxIEDpWWYfucaKFyebEAo2JjPNIsCu',
        'signature_algo' => 'sha1',
        'guest' => 'N',
    ),
  ),
'pull_e1' => 'END GENERATED PUSH SETTINGS. DON'T DELETE COMMENT!!!!',

  'cache_flags' =>
  array (
    'value' =>
    array (
      'config_options' => 3600,
      'site_domain' => 3600,
    ),
    'readonly' => false,
  ),
  
  'cookies' =>
  array (
    'value' =>
    array (
      'secure' => false,
      'http_only' => false,
    ),
    'readonly' => false,
  ),
  'exception_handling' =>
  array (
    'value' =>
    array (
      'debug' => true,
      'handled_errors_types' => 4437,
      'exception_errors_types' => 4437,
      'ignore_silence' => false,
      'assertion_throws_exception' => true,
      'assertion_error_type' => 256,
      'log' => array (
          'settings' =>
          array (
            'file' => '/var/log/php/exceptions.log',
            'log_size' => 1000000,
        ),
      ),
    ),
    'readonly' => false,
  ),
  'crypto' => 
  array (
    'value' => 
    array (
        'crypto_key' => '9188jawml2s5afvsekm2lilc9hc5a2tv',
    ),
    'readonly' => true,
  ),
  'connections' =>
  array (
    'value' =>
    array (
      'default' =>
      array (
        'className' => 'BitrixMainDBMysqliConnection',
        'host' => 'localhost',
        'database' => 'sitemanager',
        'login'    => 'bitrix0',
        'password' => '3l3aasdsad-OV-',
        'options' => 2,
      ),
    ),
    'readonly' => true,
  )
);

dbconn.php

define("DELAY_DB_CONNECT", true);
define("CACHED_b_file", 3600);
define("CACHED_b_file_bucket_size", 10);
define("CACHED_b_lang", 3600);
define("CACHED_b_option", 3600);
define("CACHED_b_lang_domain", 3600);
define("CACHED_b_site_template", 3600);
define("CACHED_b_event", 3600);
define("CACHED_b_agent", 3660);
define("CACHED_menu", 3600);
define("BX_FILE_PERMISSIONS", 0644);
define("BX_DIR_PERMISSIONS", 0755);
@umask(~(BX_FILE_PERMISSIONS|BX_DIR_PERMISSIONS)&0777);
define("MYSQL_TABLE_TYPE", "INNODB");
define("SHORT_INSTALL", true);
define("VM_INSTALL", true);
define("BX_UTF", true);
define("BX_CRONTAB_SUPPORT", true);
define("BX_COMPRESSION_DISABLED", true);
define('BX_SECURITY_SESSION_MEMCACHE_HOST', 'unix:///tmp/memcached.sock');
define('BX_SECURITY_SESSION_MEMCACHE_PORT', 0);
define("BX_TEMPORARY_FILES_DIRECTORY", "/home/bitrix/.bx_temp/sitemanager/");
define("BX_USE_MYSQLI", true);

session section in php.ini

[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.cookie_samesite =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 86400
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
session.sid_bits_per_character = 5

Добрый день! у меня такая же проблема.

Стоит VA Bitrix 7.4.0 с NodeJS.
Подскажите что надо донастроить.
Вот вывод системы:

2019-Jul-20 23:33:42 Бизнес-чат в реальном времени (check_pull_stream): Fail

Server version: 3 (Bitrix Push server)

Connection to 91.122.44.199:80 Success
Connection to 127.0.0.1:8895 Success
== Request ==

POST /bitrix/pub?CHANNEL_ID=e20b54efd37c812a50d90d4850eac75b.7d3ec15559d6dee3fdb16821e3955f317cd908b9

HTTP/1.0 Host: 127.0.0.1

Content-Length: 32  0c90fbcedbe6d53da456242bdb3a39f5

 == Response ==

 == Body ==

HTTP/1.1 301 Moved Permanently
 ========== == Request ==

GET /bitrix/sub/?CHANNEL_ID=e20b54efd37c812a50d90d4850eac75b.7d3ec15559d6dee3fdb16821e3955f317cd908b9
HTTP/1.0 If-Modified-Since: Fri, 19 Jul 2019 23:33:02 +0300

Host: 91.122.44.199
  == Response ==
 == Body ==

HTTP/1.1 304 Not Modified
Server: nginx/1.16.0

Date: Sat, 20 Jul 2019 20:33:42 GMT

Content-Type: text/plain
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Last-Message-Id
Last-Message-Id:

Expires: Thu, 01 Jan 1973 11:11:01 GMT

X-Content-Type-Options: nosniff

X-Frame-Options: SAMEORIGIN

  ==========
Connection to 127.0.0.1:8895 Success

Ошибка! Модуль nginx-push-stream работает некорректно 2019-Jul-20 23:33:42
Живые комментарии в ленте сообщений (check_pull_comments): Fail

Ошибка! Не настроен модуль nginx push-stream, который необходим для отображения комментариев в живой ленте в реальном режиме времени

2019-Jul-20 23:33:42 Видеозвонки (check_turn): Fail

Ошибка! Не настроен модуль nginx push-stream, который необходим для осуществления видеозвонков

2019-Jul-20 23:33:43 Мобильное приложение Битрикс24 (check_access_mobile): Ok

Connection to checker.internal.bitrix24.com:80 Success

Сама ошибка в Битриксе отсутствует соединение с сервером выглядит так:

Отсутствует соединение с сервером в Битрикс и Битрикс24

Причины появления ошибки отсутствия соединение с сервером

Первое, что необходимо проверить, это корректность настроек модуля Push&Pull. Перейдите в админ-панель вашего сайта на Битрикс или Битрикс24 и далее в раздел:

Настройки – Настройки продукта – Настройка модулей – Push and Pull

Здесь вам необходимо включить пункты:

  • Отправлять PUSH уведомления на мобильные телефоны (если планируете использовать телефон)
  • На сервере установлен и активирован «Push server»:

Если вы используете наш хостинг для Битрикс или хостинг для Битрикс24, то в подпункте На сервер установлена должен быть выбран вариант Виртуальная машина 4.4 — 7.0 (nginx-push-stream-module 0.4.0).

Отсутствует соединение с сервером в Битрикс и Битрикс24

Проверьте также строку «Путь для публикации команд:». Там должна быть такая запись:

http://127.0.0.1:8895/bitrix/pub/

Такой способ подходит, если у вас неактивна лицензия на Битрикс и вы не можете пользоваться облачным сервером Push&Pull. Мы рекомендуем всегда продлевать лицензию на Битрикс. То же самое относится к продлению лицензии для Битрикс24,  это поможет избежать множества проблем.

Если у вас действующая лицензия, то включите облачный сервер Битрикса в модуле Push&Pull. Для этого зайдите в настройки модуля и в строке «Использовать Push сервер» в выпадающем списке выберите «Использовать облачный сервер 1С-Битрикс» и нажмите кнопку Зарегистрироваться.

Отсутствует соединение с сервером в Битрикс и Битрикс24

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

Установка Bitrix Push server на BitrixVM

Если вы используете наш VPS хостинг для Битрикс, то на нем будет установлена виртуальная машина Битрикса под названием BitrixVM. Если там вы используете Битрикс или Битрикс24 и тоже появляется ошибка «отсутствует соединение с сервером», значит вы не установили Push server 2.0. Он не установлен по умолчанию. Для установки Push server на BitrixVM подключитесь к вашему серверу по SSH и у вас откроется главное меню:

Отсутствует соединение с сервером в Битрикс и Битрикс24

Далее выберите пункт 9. Configure Push/RTC service:

Отсутствует соединение с сервером в Битрикс и Битрикс24

Затем для установки NodeJS RTC выбираем 1. Install/Update NodeJS RTC Service

Отсутствует соединение с сервером в Битрикс и Битрикс24

После чего вводим название хоста из поля Hostname и подтверждаем установку

Отсутствует соединение с сервером в Битрикс и Битрикс24

Спустя пару минут Push server 2.0 в BitrixVM будет установлен.

После этого, в админ панели Битрикс в настройках модуля Push and Pull, выберите Виртуальная машина 7.3 и новее (Bitrix Push server 2.0) и сохраните настройки.

Отсутствует соединение с сервером в Битрикс и Битрикс24

Дополнительные настройки Push and Pull

Чтобы модуль Push and Pull работал корректно, необходимо так же в настройках Главного модуля отключить продление сессии. Для этого снимите галочку в разделе:

Главный модуль – Авторизация – Контроль сессии - Продлевать сессию при активности посетителя в окне браузера

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

Главный модуль – Настройки – Файлы - Быстрая отдача файлов через Nginx

Если вы устанавливаете Битрикс24 на техническом домене, то дополнительно в настройках модуля Push and Pull необходимо исправить адреса чтения команд для браузеров, заменив там #DOMAIN# на ваш технический адрес:

Ошибка Push and Pull после переноса Битрикс на другой хостинг

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

Отсутствует соединение с сервером в Битрикс и Битрикс24

Для этого, уже после установки Push server 2.0, нужно скопировать ключ из файла настроек сервера очередей /etc/push-server/push-server*.json. Он находится в секции security в параметре key:

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

Также код можно узнать выполнив по SSH команду:

fgrep "key" /etc/push-server/

Введение

Если у вас есть коробочная версия Битрикс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:

  • потеряно соединение с сервером
  • выключена опция nginx push stream module в настройках модуля push and pull
  • модуль nginx-push-stream работает некорректно
  • не удалось подключиться к модулю nginx-push-stream отправки мгновенных сообщений
  • не работает бизнес-чат в реальном времени (check_pull_stream): fail
  • не настроен модуль nginx push-stream-module
  • требуется установка nginx-push-stream-module
  • требуется настройка bitrix push server
  • требуется компиляция nginx для модуля push and pull для корпоративного портала

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

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

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

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

В учебном курсе Администратор. Модули → Push and Pull сказано

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

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

Текущая версия модуля nginx-push-stream-module 0.5.4, а в документации битрикса сказано:

Внимание! Работа модуля 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 у меня получилась такая конфигурация:

$ ./configure --add-module=../nginx-push-stream-module --with-zlib=./zlib-1.2.11 --with-openssl=./openssl-1.0.2n --with-pcre=./pcre-8.41 --with-http_ssl_module

--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 со всеми необходимыми модулями:

# clone the nginx-push-stream-module project
git clone https://github.com/wandenberg/nginx-push-stream-module.git
NGINX_PUSH_STREAM_MODULE_PATH=$PWD/nginx-push-stream-module

# get desired nginx version (works with 1.2.0+)
wget http://nginx.org/download/nginx-1.2.0.tar.gz

# extract nginx
tar xzvf nginx-1.2.0.tar.gz
cd nginx-1.2.0

# download and extract zlib module
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xf zlib-1.2.11.tar.gz

# download and extract openssl module
wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
tar -xf openssl-1.0.2n.tar.gz

# download and extract pcre module
wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz
tar -xf pcre-8.41.tar.gz

# configure and build
./configure --add-module=../nginx-push-stream-module --with-zlib=./zlib-1.2.11 --with-openssl=./openssl-1.0.2n --with-pcre=./pcre-8.41 --with-http_ssl_module
make build

# install and finish
make install

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

После успешного выполнения команды ./configure, должно получить примерно следующее:

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

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

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

Теперь можно проверить, правильно ли собрался nginx, есть ли там указанные модули /usr/local/nginx/sbin/nginx -V:

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

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

Порядок действий:

  • положить новый бинарник в рабочую папку вместо старого ( у меня /usr/sbin/nginx)
  • проверить и настроить пути к конфигам
  • остановить службу nginx
  • проверить, что нет ошибок
  • перезапустить службу nginx

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

service nginx stop
mv /path/to/old/nginx /path/to/old/nginx_backup
mv /usr/local/nginx/sbin/nginx /path/to/old/nginx
ngint -t
service nginx start

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

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

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

Но если путь к конфигам отличается от стандартного и не был указан при компиляции — может понадобится прописать путь к старому конфигу.

В моем случае новый бинарник подтягивал конфиг из /usr/local/nginx/conf/nginx.conf, а старые конфиги былы тут /etc/nginx/nginx.conf. Для решения этой проблемы достаточно создать симлинк на старый путь:

cd /usr/local/nginx/
mv conf/ conf_del
ln -s /etc/nginx/ ./conf

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

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

# Location for long-polling connections
location ^~ /bitrix/sub {
    # we don't use callback and droppped it (XSS)
    if ( $arg_callback ) {
        return 400;
    }

    push_stream_subscriber            long-polling;
    push_stream_allowed_origins "*";
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_last_received_message_tag    $arg_tag;
    if ($arg_time) {
        push_stream_last_received_message_time "$arg_time";
    }
    push_stream_longpolling_connection_ttl    40;
    push_stream_authorized_channels_only    on;
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

# Location for websocet connections
location ^~ /bitrix/subws/ {
    push_stream_subscriber websocket;
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_websocket_allow_publish    off;
    push_stream_ping_message_interval    40s;
    push_stream_authorized_channels_only     on;
    push_stream_last_received_message_tag    "$arg_tag";
    push_stream_last_received_message_time    "$arg_time";
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

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

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

# Common settings for nginx-push-stream-module
push_stream_shared_memory_size 256M;
push_stream_max_messages_stored_per_channel 1000;
push_stream_max_channel_id_length 32;
push_stream_max_number_of_channels 200000;
push_stream_message_ttl 86400;

# поддержка мобильных платформ, для http запросов
server {
    # nginx-push-stream-module server for push & pull

    listen 8893;
    server_name _;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# поддержка мобильных платформ, для https запросов
# SSL enabled server for reading personal channels
server {
    listen 8894;
    server_name _;
    
    #include bx/conf/ssl.conf;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# для публикации сообщений
# Server to push messages to user channels
server {
    listen 127.0.0.1:8895;
    server_name _;
    
    location ^~ /bitrix/pub/ {
        push_stream_publisher admin;
        push_stream_channels_path $arg_CHANNEL_ID;
        push_stream_store_messages on;
        allow 127.0.0.0/8;
        deny all;
    }
    
    location ^~ / { deny all; }
    
    # Include error handlers
    #include bx/conf/errors.conf;
}

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

Значение параметра На сервер установлена ближе всего к Виртуальная машина 4.4 и выше (nginx-push-stream-module 0.4.0), поэтому устанавливаем именно этот вариант.

Теперь можно тестировать работу модуля 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 — все работает.

Полезные ссылки

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

  • Зачем настраивать модуль Push&Pull

Инструкции по сборке nginx

  • Сборка nginx из исходных файлов — офиц. документация
  • Пример сборки nginx с добавлением модуля ngx_pagespeed
  • Учебный курс — Администратор. Модули — Push and Pull
  • Как установить nginx push-and-pull на Debian (для Bitrix)
  • Push and Pull for Bitrix without BitrixEnv

Исходники библиотек

  • nginx core
  • nginx-push-stream-module (push and pull)
  • zlib
  • openssl
  • pcre

Решение возможных проблем

  • git command not found
  • make command not found
  • configure: error: You need a C++ compiler for C++ support
  • nginx — src/core/ngx_sha1.h:19:17: no such file or directory

Сервер очередей Push and Pull служит для мгновенного взаимодействия между собой многих инструментов Битрикс24. Он используется в Задачах, в Календарях, в ленте Новостей, в Группах, в RPA, в мобильном приложения Битрикс24, в чатах, в генераторе документов, в Телефонии, в Центре продаж и в других сервисах Битрикс24.

В весной 2021 года будет выпущено обновление модуля Веб-мессенджера (im) 20.400.0. После установки данного обновления поддержка работы чатов без настроенного сервера очередей модуля Push and Pull будет прекращена.

Осенью 2021 года будет прекращена поддержка старых версий локальных серверов очередей Nginx-PushStreamModule 0.3.4/0.4.0 и Bitrix Push server 1.0.

Поэтому мы рекомендуем вам заранее настроить сервер очередей – облачный сервер «1С-Битрикс» или локальный Bitrix Push server 2.0.

Облачный сервер очередей «1С-Битрикс»

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

Перейдите в административном разделе: Настройки > Настройки продукта > Настройки модулей > Push and Pull, выберите вариант Облачный сервер «1С-Битрикс» и географическое расположение сервера по желанию (можно оставить автоматический выбор). Остается только нажать на кнопку Зарегистрироваться:

Зарегистрировать облачный сервер «1С-Битрикс»

Все готово, облачный сервер очередей «1С-Битрикс» настроен и активен:

Облачный сервер очередей «1С-Битрикс» настроен и активен

Локальный Bitrix Push server

Есть случаи, когда нельзя использовать в качестве сервера очередей облачный сервер «1С-Битрикс», например закрытый контур на предприятии, без доступа сервера в интернет. Для такого случая есть возможность установить локальный сервер очередей.

Так как в скором времени будет отключена поддержка старых версий сервера очередей, то мы будем устанавливать сразу 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С-Битрикс»

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

По умолчанию

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

Далее в опции Использовать «Push server»: установленный локально выберите Виртуальная машина 7.3 и новее (Bitrix Push server 2.0) и сохраните настройки:

Виртуальная машина 7.3 и новее (Bitrix Push server 2.0)

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

4. Ошибки 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. Скопированный ключ вставить в поле Код-подпись для взаимодействия с сервером и сохранить настройки.

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

Советуем прочитать:

  • Новые требования к серверному окружению для работы чатов
  • Переход с Nginx-PushStreamModule на Bitrix Push server 2.0
  • Переход с Bitrix Push server 1.0 на Bitrix Push server 2.0
  • Использование отдельного сервера очередей на базе VMBitrix
  • Настройка и запуск push сервера на стороннем окружении
  • Исходные коды пакетов виртуальной машины VMBitrix

Спасибо, помогло!

Спасибо

Необязательно:

Оставить отзыв о статье

Уточните, пожалуйста, почему:

Это не то, что я ищу

Очень сложно и непонятно

Оставить отзыв о статье

Стоит на локальной сети коробка 1С-Битрикс: Корпоративный портал 21.900.0 сервер напрочь отрублен от интернета(политика компании)
Из ошибок только отправка почты и Доступ снаружи к Экстранет.
У простых пользователей постоянно вылетает Отсутствует соединение с сервером. и со временем вылетает просто, как это можно решить?
код подписи и настройки сделаны по инструкции, через терминал показывает что все ок
http://#DOMAIN#/bitrix/pubweb/
http://#DOMAIN#/bitrix/sub/
ws://#DOMAIN#/bitrix/subws/

Centos 7 BitriVM CRM
4 ядра 16гб оперативы ECC

Ошибки консоли

/rest/batch.json?logTag=pull.config:1          Failed to load resource: the server responded with a status of 401 (Unauthorized)
{"error":"NO_AUTH_FOUND","error_description":"Wrong authorization data"}

и

Pull: could not read push-server config.

this.loadConfig().catch(function(error)
{
self.starting = false;
self.sendPullStatus(PullStatus.Offline);
self.stopCheckConfig();
console.error(Utils.getDateForLog() + ': Pull: could not read push-server config. ', error);
result.reject(error);
}).then(function(config)


error: "access_denied"
error_description: "Access denied for this type of user"
ex: s {status: 401, ex: {…}}

UPDATE
.setting.php

return array (
  'utf_mode' =>
  array (
    'value' => true,
    'readonly' => true,
  ),
  'cache' => array(
    'value' => array (
        'type' => 'memcache',
        'memcache' => array(
            'host' => 'unix:///tmp/memcached.sock',
            'port' => '0'
        ),
        'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
    ),
  ),
'pull_s1' => 'BEGIN GENERATED PUSH SETTINGS. DON'T DELETE COMMENT!!!!',
  'pull' => Array(
    'value' =>  array(
        'path_to_listener' => "http://#DOMAIN#/bitrix/sub/",
        'path_to_listener_secure' => "https://#DOMAIN#/bitrix/sub/",
        'path_to_modern_listener' => "http://#DOMAIN#/bitrix/sub/",
        'path_to_modern_listener_secure' => "https://#DOMAIN#/bitrix/sub/",
        'path_to_mobile_listener' => "http://#DOMAIN#:8893/bitrix/sub/",
        'path_to_mobile_listener_secure' => "https://#DOMAIN#:8894/bitrix/sub/",
        'path_to_websocket' => "ws://#DOMAIN#/bitrix/subws/",
        'path_to_websocket_secure' => "wss://#DOMAIN#/bitrix/subws/",
        'path_to_publish' => 'http://127.0.0.1:8895/bitrix/pub/',
        'nginx_version' => '4',
        'nginx_command_per_hit' => '100',
        'nginx' => 'Y',
        'nginx_headers' => 'N',
        'push' => 'Y',
        'websocket' => 'Y',
        'signature_key' => 'WKb2cJF4sJ99K4zYlkGDhyULVe05G1YLoLgjIFGcADqV31lLkMGiRtgBx4uXD5UYTqs0EOOm6w6RJE2Gwvrveqafg9angPwV1zUxIEDpWWYfucaKFyebEAo2JjPNIsCu',
        'signature_algo' => 'sha1',
        'guest' => 'N',
    ),
  ),
'pull_e1' => 'END GENERATED PUSH SETTINGS. DON'T DELETE COMMENT!!!!',

  'cache_flags' =>
  array (
    'value' =>
    array (
      'config_options' => 3600,
      'site_domain' => 3600,
    ),
    'readonly' => false,
  ),
  
  'cookies' =>
  array (
    'value' =>
    array (
      'secure' => false,
      'http_only' => false,
    ),
    'readonly' => false,
  ),
  'exception_handling' =>
  array (
    'value' =>
    array (
      'debug' => true,
      'handled_errors_types' => 4437,
      'exception_errors_types' => 4437,
      'ignore_silence' => false,
      'assertion_throws_exception' => true,
      'assertion_error_type' => 256,
      'log' => array (
          'settings' =>
          array (
            'file' => '/var/log/php/exceptions.log',
            'log_size' => 1000000,
        ),
      ),
    ),
    'readonly' => false,
  ),
  'crypto' => 
  array (
    'value' => 
    array (
        'crypto_key' => '9188jawml2s5afvsekm2lilc9hc5a2tv',
    ),
    'readonly' => true,
  ),
  'connections' =>
  array (
    'value' =>
    array (
      'default' =>
      array (
        'className' => 'BitrixMainDBMysqliConnection',
        'host' => 'localhost',
        'database' => 'sitemanager',
        'login'    => 'bitrix0',
        'password' => '3l3aasdsad-OV-',
        'options' => 2,
      ),
    ),
    'readonly' => true,
  )
);

dbconn.php

define("DELAY_DB_CONNECT", true);
define("CACHED_b_file", 3600);
define("CACHED_b_file_bucket_size", 10);
define("CACHED_b_lang", 3600);
define("CACHED_b_option", 3600);
define("CACHED_b_lang_domain", 3600);
define("CACHED_b_site_template", 3600);
define("CACHED_b_event", 3600);
define("CACHED_b_agent", 3660);
define("CACHED_menu", 3600);
define("BX_FILE_PERMISSIONS", 0644);
define("BX_DIR_PERMISSIONS", 0755);
@umask(~(BX_FILE_PERMISSIONS|BX_DIR_PERMISSIONS)&0777);
define("MYSQL_TABLE_TYPE", "INNODB");
define("SHORT_INSTALL", true);
define("VM_INSTALL", true);
define("BX_UTF", true);
define("BX_CRONTAB_SUPPORT", true);
define("BX_COMPRESSION_DISABLED", true);
define('BX_SECURITY_SESSION_MEMCACHE_HOST', 'unix:///tmp/memcached.sock');
define('BX_SECURITY_SESSION_MEMCACHE_PORT', 0);
define("BX_TEMPORARY_FILES_DIRECTORY", "/home/bitrix/.bx_temp/sitemanager/");
define("BX_USE_MYSQLI", true);

раздел session в php.ini

[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.cookie_samesite =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 86400
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
session.sid_bits_per_character = 5

При установке виртуальной машины Битрикс в качестве Push-and-Pull сервера по умолчанию используется модуль Nginx под названием Nginx-PushStreamModule. Этот подход считается устаревшим, поэтому в консоли Bitrix env есть возможность заменить его на NodeJS RTC service. Казалось бы нет ничего проще выбрать в консоли пункт 10 (Configure Push/RTC service), затем пункт 1 (Install/Update NodeJS RTC Service), дождаться выполнения фонового задания и начать пользоваться современным инструментом. Но к сожалению в некоторых случаях все проходит не так гладко. Когда я стал проводить описанные действия – выполнение команд завершилось ошибкой, а я получил неработающий портал клиента. Версия виртуальной машины, где произошла эта ошибка была 7.0.3.

Ошибка при настройке push and pull сервера

Причем «откатить» изменения через консоль не удалось, так как NodeJS RTC service не установился. Оказалось, что ключевая причина в том, что перестал запускаться Nginx. При попытке его запустить выдавалась следующая ошибка: nginx: [emerg] host not found in upstream “server1:8010”.

Nginx ошибка при запуске

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

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

Сначала я открыл главный файл конфигурации nginx (/etc/nginx/ nginx.conf). Дата его изменения была давнишняя, поэтому я решил, что причина неисправности не в нем. В этом файле есть подключение других конфигурационных файлов из папок /etc/nginx/bx/conf/, /etc/nginx/bx/settings/, а также /etc/nginx/bx/site_enabled/.

Зайдя в эти папки, я обнаружил, что в них есть файлы со «свежей» датой создания. Открыв параллельно соответствующие папки другой ВМ, где NodeJS RTC service не установлен, я обнаружил, что таких файлов там нет. Значит их можно и нужно удалить.

Сначала удаляем следующие файлы:

  • /etc/nginx/bx/settings/rtc-im_settings.conf
  • /etc/nginx/bx/site_enabled/rtc-server.conf

Далее удаляем файл:

  • /etc/nginx/bx/conf/rtc-im_subscrider.conf

НО на него в этой папке есть символическая ссылка. Ее тоже нужно удалить и создать снова, но указывать она должна уже на другой файл: push-im_subscrider.conf

Делается это командой

# ln –s /etc/nginx/bx/conf/im_subscrider.conf /etc/nginx/bx/conf/push-im_subscrider.conf

После выполнения этих действий, снова пытаемся запустить Nginx.

# service nginx restart или

# systemctl restart nginx.service

В моем случае он запустился без проблем и портал снова заработал.

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

Затем я обновил BitrixEnv до 7.3.4 и попробовал выполнить установку NodeJS RTC service снова. Обновление не помогло. Ситуация повторилась снова. Пришлось повторить все описанные выше действия еще раз.

Надеюсь, что когда вы будете читать эту статью, подобных проблем при настройке Push-and-Pull сервера в виртуальной машине Битрикс возникать не будет.

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

  • Поступил звонок на роботизированный номер (Звонок от пользователя)
  • Нажата кнопки принять на телефоне (PushOK)

В результате компонент сразу начинает проверку не ожидая нажатия на кнопку Готово пользователем.

Таким образом пользователь максимально быстро проходит процесс проверки номера телефона и входа на сайт.

Для всего этого используется модуль Push and Pull, который организует подключение по websocket и обмен данными.

Чтобы все это работало, необходимо его настроить.

Установка модуля

В первую очередь устанавливаем модуль если он не установлен. На странице установленных модулей должна быть соответствующая отметка что модуль установлен.
Рабочий стол /Настройки / Настройки продукта / Модули

2022-11-09_19-58.png

Также должен был быть установлен модуль REST API (rest)

2022-11-09_20-31.png

Настройка модуля Push and Pull

На странице настроек модуля необходимо проверить чтобы был выбран Push server. Проще всего использовать облачный сервер 1С-Битрикс. Нужно только будет нажать кнопку зарегистрировать чтобы все активировалось. Этот вариант работает только для активных лицензий битрикса.
Рабочий стол / Настройки / Настройки продукта / Настройки модулей

2022-11-09_20-04.png

Проверка работы

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

BX.PULL.getDebugInfo();

Результат должен быть примерно таким
2022-11-09_20-34.png

Исправление ошибки — Config is not loaded

Если после всех действий, при проверке вы в отчете видите ошибку — Config error: config is not loaded как на картинке ниже
2022-11-09_20-15.png

Вам нужно проверить есть ли запись файле /urlrewrite.php и если нет, то нужно добавить

0 => array (
  'CONDITION' => '#^/rest/#',
  'RULE' => '',
  'ID' => NULL,
  'PATH' => '/bitrix/services/rest/index.php',
  'SORT' => 10,
),

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

Это должно выглядеть примерно так

2022-12-23_14-24.png

Далее сохраняем изменения, после этого можно обновить страницу, все должно работать.

Если это не помогло, вам нужно:

  1. в настройках модуля Push and Pull в поле — Использовать «Push server»: выбрать вариант — Использовать сервер, установленный локально.
  2. Затем Сохранить.
  3. Выбрать вариант — Использовать облачный сервер 1С-Битрикс
  4. Опять Сохранить

Таким образом обновляется кэш и ошибка пропадает.

  1. Проблема с push-сервером
  2. Ошибка с функцией padStart()
  3. Замена функции padStart простым кодом

После установки из 1С-Битрикс: Веб-окружение коробочной версии Bitrix24 не работает push, не приходят уведомления через локальный сервер (красная строка Отсутствует соединение с сервером). В настройках Push and Pull был выбран локальный сервер с Виртуальной машиной 7.3 и новее (Bitrix Push server 2.0), остальные настройки по-умолчанию:

bitrix24 не работает push

Ошибка с функцией padStart()

В логах push-сервера (/var/log/push-server/error и /var/log/push-server/system-error) повторялась одна и та же ошибка:

uncaughtException: (++requestId).toString(...).padStart is not a function 

Как оказалось, функция padStart появилась в node 7 версии, а с окружением установился node 6 (почему так – вопрос к разработчикам):

node --version
v6.17.1

Замена функции padStart простым кодом

Функция padStart заполняет строку другой строкой до определенной длины и используется в push-сервере для создания уникальных идентификаторов лог-записей. Лучшим решением, конечно же, было бы обновить node до 8 версии. Но так как я не знаю, на каких модулях это может отразится, было решено заменить функцию padStart на простой код, тем более что встречается функция всего лишь два раза.

Открываем редактором /opt/push-server/lib/debug/index.js и в функции getUniqueId() заменяем ‘return process.pid + “T” + (++requestId).toString().padStart(8, “0”);’ на следующий код:

function getUniqueId()
{
    newRequestId = (++requestId).toString();
    while(newRequestId.length < 8){
        newRequestId = '0'+ newRequestId;
    }
    return process.pid + "T" + newRequestId;

//  return process.pid + "T" + (++requestId).toString().padStart(8, "0");
}

и в /opt/push-server/lib/storages/redis.js в функции getMessageId(callback) заменяем ‘const id = Buffer.from(startDate + messageCounter.toString().padStart(16, “0”), “hex”);’ на:

while(messageCounter.toString().length < 16){
    messageCounter = "0"+ messageCounter.toString();
}
const id = Buffer.from(startDate + messageCounter.toString(), "hex");
//const id = Buffer.from(startDate + messageCounter.toString().padStart(16, "0"), "hex");

В обоих файлах остались закомментированные оригинальные строки.

После этого перезагружаем push-сервер:

service push-server restart

На этом все. Сервер запустится, а в логах больше не будет ошибок связанных с функцией padStart и пропадет надоедливая строка на портале Отсутствует соединение с сервером.

Статья по данной теме: Битрикс24 за прокси-сервером

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

Модуль Веб-мессенджер (im)
Модуль Веб-мессенджер (im)

Что это значит?

Сервер очередей Push and Pull служит для мгновенного взаимодействия между собой многих инструментов Битрикс24. Он используется в Задачах, в Календарях, в ленте Новостей, в Группах, в RPA, в мобильном приложения Битрикс24, в чатах, в генераторе документов, в Телефонии, в Центре продаж и в других сервисах Битрикс24.

Весной 2021 года будет выпущено обновление модуля Веб-мессенджер (im) 20.400.0. После установки данного обновления поддержка работы чатов без настроенного сервера очередей модуля Push and Pull будет прекращена.

Что делать?

Вам нужно проверить, настроен ли сервер очередей в модуле Push and Pull. Обновить систему до последней версии.

Далее перейти в административном разделе: Настройки > Настройки продукта > Настройки модулей > Push and Pull.

У вас должен быть выбран вариант – облачный сервер «1С-Битрикс» или локальный сервер Bitrix Push server.

Настройки модуля Push and Pull
Настройки модуля Push and Pull

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

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

Администратор сервиса Битрикс24 (коробочная версия)

Сложность урока:

4 уровень — сложно, требуется сосредоточится, внимание деталям и точному следованию инструкции.

5

Недоступно в редакциях:

Старт, Стандарт

Настройка Push and Pull

Если ваш Битрикс установлен на виртуальной машине

BitrixVM версии 7.1 или старше

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

Подробнее …

, то у вас нет необходимости настраивать модуль Push and Pull. В виртуальной машине уже поставляется отдельный Push-сервер, он настроен и сконфигурирован и работает «из коробки».

Если, всё же необходимо произвести некоторые изменения, то это делается на странице Настройки > Настройки продукта > Настройки модулей > Push and Pull:

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

  • Укажите секретный код для подписи сообщения. Это 32-х значный произвольный код, который указывается в настройках пуш-сервера:
    ./push-server/config/config.json:
    "security": {
            "key": 

    Примечание: В виртуальной машине

    BitrixVM

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



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

  • При необходимости перенастройте шаблоны путей. Домен в адресе для чтения сообщений можно указать #DOMAIN#: такая нотация будет автоматически заменяться под нужный домен для многодоменных конфигураций. Пример: http://#DOMAIN#:8893/bitrix/sub/.
  • Если в системе несколько активных сайтов, то есть возможность выбрать, на каких сайтах модуль не будет работать.

Работа модуля Push and Pull Битрикса на виртуальной машине до версии 5.0.

Настройка nginx-push-stream-module в версии 0.4.0 (рекомендуется к использованию)

Настройка nginx-push-stream-module в версии 0.3.4

Как использовать модуль, подробно рассказано в курсе Разработчик Bitrix Framework в главе

Push and Pull

Модуль Push & Pull работает в двух режимах:

постоянное подключение к специальному серверу Сервер очередей;
в режиме опроса сервера (60-20-10).

Подробнее …

.

Документация по теме:

  • Настройки модуля (документация)
  • Зачем настраивать модуль Push&Pull (блог)
  • Работа с модулем для разработчиков
  • API модуля
  • Push-уведомления в курсе «BitrixMobile — создание кроссплатформенных мобильных приложений»

27


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

@samkh81

Hi, Thanks for uploading this. I didn’t understand step three. I am new to linux.

Can you please explain this more:

make symlink to push.conf from conf.d (must be inclided in nginx.conf) cd conf.d ln -s ../bx/push.conf

Where do I find conf.d file? I tried searching for it on my server (hosted online) and got these results:
./etc/fonts/conf.d
./usr/local/cpanel/base/horde/turba/config/conf.d
./usr/share/ghostscript/conf.d
./usr/share/doc/dovecot-2.2.21/example-config/conf.d
./usr/share/abrt/conf.d

@belukov

Hello.
conf.d is a directory and usually exists in /etc/nginx/ dir. All configs from conf.d automatically included in nginx.conf
something like this:

# /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;

you can make it easier. just add into your nginx.cong this line:

include /etc/nginx/bx/push.conf

@belukov

I just corrected README, maybe now it will be more helpfull.
Let me know about result

@samkh81

I did that but my Bitrix server check still says:

Error! Cannot connect to nginx-push-stream module for sending instant messages

Do I need to reload the config file or do something else? Any ideas what the issue could be?

Appreciate your help
Thanks

@belukov

Try to check:

  1. Opened ports.
    By default, 8893 — for http clients, 8894 — for https clients, and 8895 — for server (connect locally)
    therefore 8893 must be opened for outdor connections
  2. Look at Push&Pull module settings page in admin panel, there some nessesary settings too
  3. To localize the problem, use next trick from console:
# open new channel
curl -s -v -X POST 'http://127.0.0.1:8895/bitrix/pub/?CHANNEL_ID=test' -d 'Hello World!'

you must see something like {«channel»: «test», «published_messages»: «1», «stored_messages»: «1», «subscribers»: «0»}
In other console connect local client:

curl -s -v --no-buffer 'http://localhost:8893/bitrix/sub/?CHANNEL_ID=test'

If ok, you will see some HTTP headers and console will waiting response.
Then in first console repeat POST command, in second you will see some message
If that ok, try to connect client from some other server by IP or domain name
That help you to understand where is problem

Glad to help :)

@samkh81

When I ran this:

open new channel

curl -s -v -X POST ‘http://127.0.0.1:8895/bitrix/pub/?CHANNEL_ID=test’ -d ‘Hello World!’

I got this response:
About to connect() to 127.0.0.1 port 8895 (#0)

  • Trying 127.0.0.1… Connection refused
  • couldn’t connect to host
  • Closing connection #0

so I seem to have missed something but I don’t know where the problem is

@belukov

It means that nobody listening port 8895, or maybe firewall too strict.

to ensure that nginx is listening, run this:

there must be strings like:

tcp        0      0 0.0.0.0:8893                0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:8894                0.0.0.0:*                   LISTEN      -
tcp        0      0 127.0.0.1:8895              0.0.0.0:*                   LISTEN      -

to check firewall rules:

to ansure that push&pull module included, run

and find nginx-push-stream-module . if exists then ok.
else try to reinstall nginx with module. don’t forget remove old instance before? it may cause problems in some cases..

@samkh81

Netsat results:

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2077 0.0.0.0:* LISTEN 4791/cpdavd — accep
tcp 0 0 0.0.0.0:2078 0.0.0.0:* LISTEN 4791/cpdavd — accep
tcp 0 0 0.0.0.0:2079 0.0.0.0:* LISTEN 4791/cpdavd — accep
tcp 0 0 0.0.0.0:2080 0.0.0.0:* LISTEN 4791/cpdavd — accep
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 4664/dovecot
tcp 0 0 0.0.0.0:2082 0.0.0.0:* LISTEN 1933/cpsrvd (SSL) —
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 4664/dovecot
tcp 0 0 0.0.0.0:2083 0.0.0.0:* LISTEN 1933/cpsrvd (SSL) —
tcp 0 0 0.0.0.0:2086 0.0.0.0:* LISTEN 1933/cpsrvd (SSL) —
tcp 0 0 0.0.0.0:2087 0.0.0.0:* LISTEN 1933/cpsrvd (SSL) —
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 23556/exim
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 4664/dovecot
tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN 1042/spamd child
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 4664/dovecot
tcp 0 0 0.0.0.0:2095 0.0.0.0:* LISTEN 1933/cpsrvd (SSL) —
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5402/httpd
tcp 0 0 0.0.0.0:2096 0.0.0.0:* LISTEN 1933/cpsrvd (SSL) —
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 23556/exim
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3689/pure-ftpd (SER
tcp 0 0 192.163.239.29:53 0.0.0.0:* LISTEN 1257/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1257/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1447/sshd
tcp 0 0 0.0.0.0:9080 0.0.0.0:* LISTEN 10876/nginx
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 23556/exim
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1257/named
tcp 0 0 0.0.0.0:26 0.0.0.0:* LISTEN 23556/exim
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 5402/httpd
tcp 0 3376 192.163.239.29:22 77.30.214.210:53993 ESTABLISHED 16103/sshd
tcp 0 0 192.163.239.29:80 77.30.214.210:54366 TIME_WAIT —
tcp 0 0 :::993 :::* LISTEN 4664/dovecot
tcp 0 0 :::995 :::* LISTEN 4664/dovecot
tcp 0 0 :::3306 :::* LISTEN 23195/mysqld
tcp 0 0 :::110 :::* LISTEN 4664/dovecot
tcp 0 0 :::143 :::* LISTEN 4664/dovecot
tcp 0 0 :::80 :::* LISTEN 5402/httpd
tcp 0 0 :::21 :::* LISTEN 3689/pure-ftpd (SER
tcp 0 0 :::22 :::* LISTEN 1447/sshd
tcp 0 0 :::443 :::* LISTEN 5402/httpd

@samkh81

I don’t see entries for ports 8893-8894-8895

@belukov

Me too..

Hmm.. nignx listening 9080, httpd listening 80 ? Why? oO

What OS are you using? CentOs or somthing nearest?
If so, you better try that:
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=37&LESSON_ID=6489
(i don’t know where find ENG copy of this page)

Anyway, check that nginx include module

to ensure that push&pull module included, run

and find nginx-push-stream-module . if exists then ok.
else try to reinstall nginx with module. don’t forget remove old instance before? it may cause >problems in some cases..

@samkh81

When I ran command nginx -V I got this response
-bash: nginx: command not found

Does this mean nginx is not installed? My server is online hosted VPS server with CentOS running on it. I thought by installing nginx-push-stream-module that meant I had installed nginx. Or is it a different installation? after I installed nginx-push-stream-module then I installed your package

@samkh81

I guess nginx was not installed. I found a link on bluehost on how to install it. I did that and now when I run nginx -V command I get this:
nginx version: nginx/1.9.14
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: —with-http_flv_module —with-ipv6 —with-http_mp4_module —with-pcre=/usr/local/src/publicnginx/pcre-8.35 —sbin-path=/usr/local/sbin —conf-path=/etc/nginx/nginx.conf —pid-path=/var/run/nginx.pid —error-log-path=/var/log/nginx/error.log —http-log-path=/var/log/nginx/access.log —with-http_realip_module —with-http_ssl_module —http-client-body-temp-path=/tmp/nginx_client —http-proxy-temp-path=/tmp/nginx_proxy —http-fastcgi-temp-path=/tmp/nginx_fastcgi —with-http_stub_status_module

@samkh81

but bitrix still shows an error of
Error! Cannot connect to nginx-push-stream module for sending instant messages

any ideas what to do now? Sorry to bother you

@belukov

@samkh81

I think its almost working but now I get this error:

[emerg] unknown directive «push_stream_shared_memory_size» in /etc/nginx/bx/conf/im_settings.conf:3

any ideas?

@samkh81

I finally got nginx-push-stream module installed. I was previously installing under the incorrect nginx folder . Now bitrix is no longer showing this error:
Error! Cannot connect to nginx-push-stream module for sending instant messages

now Notifications to mobile devices (push notifications) shows that push and pull is configured correctly

however, Real time business chat shows error: Error! nginx-push-stream module functions incorrectly.

Live comments shows error: Error! nginx-push-stream module is required to show comments in real time but not configured properly.

and video calls shows error Error! nginx-push-stream module is required to make video calls but not configured properly.

  • Ошибка не удалось подключиться к миру майнкрафт бедрок
  • Ошибка не удалось подключиться к движку проверьте правильность установки
  • Ошибка не удалось подключиться к гипервизору
  • Ошибка не удалось подключиться к базе данных текст ошибки could not connect to mysql server
  • Ошибка не удалось подключиться к автономному режиму так как вы не использовали ранее эту учетную