Пользователь 3952232 Заглянувший Сообщений: 10 |
#1 0 13.02.2020 11:43:30 Добрый день. Судя по форуму моя тема довольно часто обсуждаема, но решения я найти не смог
Подскажите, как понять в чём проблема? https://dev.1c-bitrix.ru/support/forum/forum23/topic128618/ |
||
Пользователь 136059 Гуру Сообщений: 5418 |
#2 0 13.02.2020 12:01:59
Теперь отктройте в админке вкладку — Управление масштабированием и на квадратике Push нажмите установить (или удалить, а потом установить) Голосуй за идеи по развитию API Bitrix: |
||
Если навести курсор на квадратик PUSH, то ничего сверху не всплывает. Сам квадратик синего цвета |
|
Матвей Михайлов, у вас коробка CRM что-ли? |
|
Да. Решили протестировать перед покупкой, но не можем победить звонки |
|
Коллеги. Буду рад любой помощи. Первый раз работаю с Битрикс и сам разобраться не могу |
|
Пользователь 988219 Посетитель Сообщений: 52 |
#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 регулярно возникают у многих. Судя по всему, задача не имеет тривиального решения, и исчерпывающего руководства, собранного в одном месте. Попробую исправить ситуацию.
Сборка 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
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
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
I just corrected README, maybe now it will be more helpfull.
Let me know about result
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
Try to check:
- 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 - Look at Push&Pull module settings page in admin panel, there some nessesary settings too
- 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
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
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..
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
I don’t see entries for ports 8893-8894-8895
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..
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
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
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
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?
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.
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
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
I just corrected README, maybe now it will be more helpfull.
Let me know about result
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
Try to check:
- 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 - Look at Push&Pull module settings page in admin panel, there some nessesary settings too
- 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
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
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..
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
I don’t see entries for ports 8893-8894-8895
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..
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
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
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
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?
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.
Содержание
- Проблема чего: «Ожидание доступного сокета»?
- WebSocket connection to ‘ws://localhost:4000/’ failed: Error during WebSocket handshake: Unexpected response code: 400 #4778
- Comments
- Настройка модуля Push and Pull для корпоративного портала 1С-Битрикс
- Введение
- Проблема
- Сборка nginx с модулем nginx-push-stream-module
- Подключение собранного nginx
- Настройка nginx для модуля push and pull
- Настройка модуля Bitrix NodeJS RTC
- Заключение
- WebSocket connection to failed: Invalid frame header #2557
- Comments
Проблема чего: «Ожидание доступного сокета»?
Добрый день!
Замечено следующее поведение и непонятно как его обойти. При множестве вкладок (в основном 8-10+) + новое обращение на сервере приводит к зависанию в вебкитовских браузерах.
Сначала замечено было на сайте КорПортала, но потом заметил забавную вещь — и если открыть форума битрикса чтук 10-15 вкладок, при открытии новой может выскочить такой же прикол.
Как решить данную проблему?
И вообще на уровне чего эта проблема существует? На уровне браузера ограничение, или на уровне сервера (его настроек) или на уровне самого движка битрикса?
Очень грустная ситуация, потому что части сотрудников компании приходится постоянно держать открытыми 10-20+ вкладок — много задач и по ним делать мониторинг, приходится много переключаться.
Уже месяц как перешли на коробку BX24 с мегаплана и мучаемся =(
P.S. Модуль nginx push stream настроен корректно, проверка функций BX24 на него не ругается (вообще все пункты зеленые), отключение в настройках данного модуля «вебСоккетов» (снятие галки) результата не дает.
Цитата |
---|
Максим Кучук написал: Александр Букуров , это ограничение на уровне сервера срабатывает |
Цитата |
---|
Роман Клевцов написал: Подскажите, в каком разделе админки можно включить галку «Включить поддержку WebSocket». Тоже намучались ( |
Добрый день! У нас на свежей установке битрикса тоже есть проблема с websocket.
Конфигурация:
Виртуальная машина BitrixVM7.1.0 с объемом диска 20 Гб для OVA (Sphere and etc.)
1С-Битрикс: Корпоративный портал 17.0.5.
Доступ с внешки настроен через обратный прокси на базе nginx (думаю это ключевой момент)
Описание проблемы:
Постоянно появляются ошибки при работе следующего содержания:
«WebSocket connection to ‘ws://domain.ru/bitrix/subws/?CHANNEL_ID=9ec059209540e24cb61da2ad3072c960/a5dedb91e15e1b16 b84fcb7ea951a578&tag=1&time=Fri,%2018%20Mar%202022%2021:00:00%20GMT’ failed: Error during WebSocket handshake: Unexpected response code: 400»
При этом если в конфигурации модуля push and pull убрать галочку с настройки «Включить поддержку WebSocket», то ошибки нет, но тогда появляются ошибки «Ожидание свободного сокета» и часть открытых вкладок в браузере Chrome начинают сильно виснуть.
Проверка конфигурации ошибок по сокетам не показывает вобще, то есть судь по проверке системы — все ок.
Подскажите, возможно надо корректно настроить работу с сокетами за реверс прокси, как это сделать?
Источник
WebSocket connection to ‘ws://localhost:4000/’ failed: Error during WebSocket handshake: Unexpected response code: 400 #4778
I can’t figure out what is the problem?
server:
client:
; if (error) return
The text was updated successfully, but these errors were encountered:
Even I am facing the same issue. Did you find a solution?
Hi @ThiruvenkatamR, Did you try my suggestion, ws://localhost:4000/graphql.
Yes, I tried. But no luck
This is the error
‘The connection to ws://localhost:4000/graphql was interrupted while the page was loading.’
Thanks @vincenterc , this is working in Chrome, but I have this issue in Firefox. Thanks once again.
I continue to get this issue on my Angular 8 app. I seem to have all the correct code
Has anyone had any luck with this?
Hi, I’m facing the same issue. I tried this but it no works! Does anyone have a solution?
Any fix?? Facing the same problem with Apollo Client 3
Nevermind, i forgot to add the /graphql at the end of the url just like @vincenterc pointed out.
I had this: ws://localhost:4000
Working code just in case anyone else faces this:
Adding the /graphql fixed this issue for me too.
Was a reverseproxy configuration issue for me, not a library issue
Adding /subscriptions worked for me
My problem was that I am using an Express server and applying Apollo Server as a middleware. I was not aware that I need to call graphqlServer.installSubscriptionHandlers(expressServer) too, as this was buried deep in the docs. That needs to be called on the HTTP server instance you get returned from expressApp.listen() . Now it is working!
Thank you @danieldunderfelt . You saved my day.
Thank you @danieldunderfelt. You made my year.
This doesn’t sound like an Apollo Client issue, but if anyone thinks it is and can provide a small runnable reproduction using @apollo/client@latest , we’ll take a look. Thanks!
Источник
Настройка модуля Push and Pull
для корпоративного портала 1С-Битрикс
Введение
Если у вас есть коробочная версия Битрикс24, и вы хотите использовать живую ленту, мгновенный чат, и получать push уведомления на телефон — вам понадобится модуль push and pull.
Под капотом у модуля модуль push and pull находится nginx с дополнительным модулем nginx-push-stream-module. Данный модуль не входит в стандартную поставку, поэтому для его подключения нужно собирать (компилировать) nginx из исходников.
Модуль nginx-push-stream-module есть в виртуальной машине битрикса (BitrixVM) из коробки. Поэтому самое простое решение данной задачи — развернуть BitrixVM и поставить на нее корпоративный портал.
Но если у вас нет BitrixVM и вы не хотите только ради этого переходить на нее — нужно скомпилировать nginx с поддержкой модуля nginx-push-stream-module из исходников, вручную.
Проблема
При работе с сайтом в публичной части выводится красная полоска с сообщением об ошибке “Отсутствует соединение с сервером”. Эта ошибка говорит о наличии проблемы с модулем push and pull.
При наличии такой ошибки, чтобы увидеть новое сообщение в чате — нужно либо долго ждать, либо перезагрузить страницу. В живой ленте обновления тоже будут появляться с большой задержкой или после перезагрузки страницы.
Можно выделить ряд характерных сообщений об ошибках (их можно найти в админке или в логах), свидетельствующих о необходимости настройки модуля push and pull:
- потеряно соединение с сервером
- выключена опция 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
Соберите 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 со всеми необходимыми модулями:
Во время выполнения команды 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 команд для подключения нового бинарника, в общем виде:
/path/to/old/ — замените на свой путь к старому бинарнику.
Не удаляйте старый бинарник! Переименуйте его на время тестирования, чтобы вернуть его назад, если возникнут проблемы с работой сайтов.
Новый бинарник подтянет старые файлы конфигурации, однако сразу же проверьте работоспособность своих сайтов.
Но если путь к конфигам отличается от стандартного и не был указан при компиляции — может понадобится прописать путь к старому конфигу.
В моем случае новый бинарник подтягивал конфиг из /usr/local/nginx/conf/nginx.conf , а старые конфиги былы тут /etc/nginx/nginx.conf . Для решения этой проблемы достаточно создать симлинк на старый путь:
Настройка nginx для модуля push and pull
1) В nginx добавить в блок server<> (для виртуального хоста) локейшены из битриксовой документации
2) В nginx добавить общие настройки модуля push and pull.
Нужно создать новый файл в папке с конфигами nginx для виртуального хоста, например push_and_pull.conf и поместить в него настройки. Некоторые строки пришлось закомментировать, так как они нужны только для BitrixVM.
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 — все работает.
Источник
WebSocket connection to failed: Invalid frame header #2557
WebSocket connection to ‘ws://10.1.30.58/socket.io/?EIO=3&transport=websocket’ failed: Invalid frame header
The text was updated successfully, but these errors were encountered:
On network tab
On client:
I used node-static for serving files, with it socket.io doesn’t work. With express or default node(http) it works.
@lgg is this issue solved? I have got the same problem
@rizkiaditya24 i used express.js instead of node-static
Same issue. Any one have solution for it?
Error:
WebSocket connection to ‘ws://192.168.0.160/socket.io/?EIO=3&transport=websocket’ failed: Invalid frame header
@rrpatilcse what server you are using?
expressjs?
i used nginx proxy django websoket service.now no way got it!throw «WebSocket connection to failed: Invalid frame header»
@zengliangbigdata show your nginx config, i think it could be troubles with proxy_pass
Same issue here.
VM41:164 WebSocket connection to ‘ws://localhost:1337/socket.io/?EIO=3&transport=websocket&sid=dl2GgAoz02RW0OjCAAAC’ failed: Invalid frame header
In the node.js console got this messages:
info: Client disconnect: NaN error: Can not find client NaN on disconnect
I’m using Chrome and have this error. Everything works fine in IE.
Same issue, I only get the error in the chrome console
Same issue, I only get the error in the chrome console
SAME.. do you find any solution??
same!! someone tell me what’s going on
Hi, I have encountered the same issue.
I am using NodeJS (LTS v12.18.1) with ExpressJS (v4.17.1) and Socket.io (v2.3.0).
Here is my server.js
`const express = require(‘express’);
const app = express();
const server = require(‘http’).createServer(app);
const io = require(‘socket.io’)(server);
io.on(‘connection’ ,socket => <
// socket events handling
>);
Has anyone found a solution?
Hi, I have encountered the same issue.
I am using NodeJS (LTS v12.18.1) with ExpressJS (v4.17.1) and Socket.io (v2.3.0).
Here is my server.js
`const express = require(‘express’);
const app = express();
const server = require(‘http’).createServer(app);
Источник
(@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
Замечание. Не удалось проверить из-за ошибки в работе с сокетами
Доброго времени суток уважаемые форумчане!
1.1. Достался мне сайт на движке «bitrix» на CentOS 7.
1.2. При его проверке встроенными средствами движка через админ-панель (веб-браузер) вылазит куча ошибок (см. «screen1.png» во вложении).
1.3. При нажатии на знак «?» (который находится в строке с названием ошибки) получаем подсказку со следующим содержимым (см. «screen2.png» во вложении):
«Результат теста: Ошибка! Не работает
Осуществляется сетевое подключение с веб-сервера к самому себе. Это необходимо чтобы проверить работу сетевых функций, а также требуется для ряда последующих тестов.
А значит, если этот базовый тест не отработал, то дальнейшие тесты, где требуется создание независимого php процесса, не могут быть произведены.
Обычно проблема возникает, если подключение запрещено фаерволом, доступ к административной части запрещен по IP или для входа на сайт требуется HTTP/NTLM авторизация. На этапе тестирования необходимо отключить эти ограничения.
Подробности в журнале проверки системы.»
Но описанная рекомендация для моего случая не помогла решить проблему.
Поэтому я решил пойти иным путём.
2.1. Взял тестовую машину и накатил туда чистый CentOS 7.
2.2. Установил битрикс-окружение с помощью родного скрипта, скачанного с сайта разработчиков.
2.3. Установил демо-сайт для пробы.
2.4. Прогнал этот демо-сайт на ошибки с помощью админ-панели (через веб-морду) средствами самого движка. В результате — никаких ошибок не выявлено!
2.5. После этого забекапил «старыми дедовскими» методами «глючный сайт»: «mysqldump + tar»
2.6. Перенес этот бекап на свежеустановленный демо-сайт и развернул (импортировал базу, распаковал содержимое архива в правильную папку и проверил корректность прав на файлы и папки).
2.7. Снова прогнал сайт на ошибки через веб-админку — ВСЕ ошибки остались от старого сайта
2.8. При этом всем, конфиги в консоли сервера не правил!
Ситуация вообще странная… Прошу Вас помочь разобраться в этом вопросе.
Также добавлю сюда журнал проверки системы:
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
- :
Ошибка! Не работает
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
- :
Ошибка! Не удалось подключиться к модулю 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
Замечание. Не удалось проверить из-за ошибки в работе с сокетами
Пропишите доменное имя в /etc/hosts
- Записки IT специалиста — Форум
-
►
Сайтостроение -
►
Веб-сервера -
►
Bitrix – ошибки в работе с сокетами
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Comments
Hi I have installed nginx-push-stream-module
version 1.8.0 I have pasted the following code in /etc/nginx/nginx.conf
location /channels-stats {
push_stream_channels_statistics;
push_stream_channels_path $arg_id;
}
location /pub {
push_stream_publisher admin;
push_stream_channels_path $arg_id;
}
location ~ /sub/(.*) {
push_stream_subscriber long-polling;
push_stream_channels_path $1;
push_stream_message_template " {"id":~id~,"channel":"~channel~","text":"~text~"}";
push_stream_longpolling_connection_ttl 30s;
}
but getting this error nginx: [emerg] unknown directive "push_stream_channels_statistics" in /etc/nginx/nginx.conf:240
where I’m doing wrong !!
Do you mind to paste the nginx -V
output and describe how you installed the module?
ThnQ for quick response nginx -V gives this
I have followed thses steps:
https://github.com/wandenberg/nginx-push-stream-module#installation-
nginx version: nginx/1.10.0 (Ubuntu)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat - Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with- stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads
@hiteshsomani you probably missed to use --add-module=../nginx-push-stream-module
on your configure command. There is no reference to pushstream module on nginx -V output.
If you are trying to use the dynamic version, please take a look on how to build it on Nginx documentation. If not, add the command above to your configuration and repeat the compile and install steps again.
@wandenberg I have used --add-module=../nginx-push-stream-module
but still getiing the same issue.. I need to confirm where I have to configure the http context ? now I have done at /etc/nginx/nginx.conf
Please, share the full command you are using, and your folder structure, and also your nginx.conf.
command that i’m using : sudo nginx to start server
getting this error nginx: [emerg] unknown directive "push_stream_channels_statistics" in /etc/nginx/nginx.conf
nginx.cong
server{
location /channels-stats {
push_stream_channels_statistics;
push_stream_channels_path $arg_id;
}
location /pub {
push_stream_publisher admin;
push_stream_channels_path $arg_id;
}
location ~ /sub/(.*) {
push_stream_subscriber long-polling;
push_stream_channels_path $1;
push_stream_message_template "{"id":~id~,"channel":"~channel~","text":"~text~"}";
push_stream_longpolling_connection_ttl 30s;
}
}
Not the command to start the server. The command to configure, build and install the nginx.
Probably you made a mistake on it, or forgot to recompile and reinstall after add the —add-module
command I used : I used exactly these steps to install installation
for configuration I added this code configuration in /etc/nginx/nginx.conf
:
So, for sure you skip some step because on the output of you nginx -V
does not contain the word ‘push’ for example and it must be there if you 1) configure the module with —add-module … 2) recompile the nginx with make
and 3) reinstalled it with sudo make install
Cool Its working but not able to do this curl -s -v --no-buffer 'http://localhost/sub/my_channel_1'
Trying 127.0.0.1...
* connect to 127.0.0.1 port 80 failed: Connection refused
* Failed to connect to localhost port 80: Connection refused
* Closing connection 0
any idea !!
I think server is not yet started but I have run this command sudo /usr/local/nginx/sbin/nginx -c $NGINX_PUSH_STREAM_MODULE_PATH/misc/nginx.conf
what shows on logs and stdout when you executed sudo /usr/local/nginx/sbin/nginx -c $NGINX_PUSH_STREAM_MODULE_PATH/misc/nginx.conf
?
(just to remember this misc/nginx.conf
must not be used for other purposes than testing.)
I suggest you to uninstall everything and starts over, step by step.
after reinstalling getting this
nginx: [emerg] invalid event type "poll" in /home/ashwinik/pusher/nginx-push-stream- module/misc/nginx.conf:19
to fix the above I made a change
nginx: configuration file /home/ashwinik/pusher/nginx-push-stream-module/misc/nginx.conf test failed
replace poll with epoll if you are on linux and with kqueue if on MacOS
after this command sudo /usr/local/nginx/sbin/nginx -c $NGINX_PUSH_STREAM_MODULE_PATH/misc/nginx.conf
when I hit localhost for channel subcription
curl -s -v --no-buffer 'http://localhost/sub/my_channel_1'
nothing is logging
Infact curl -I http://localhost/
gives this curl: (7) Failed to connect to localhost port 80: Connection refused
which means server is not yet started … but I run this command sudo /usr/local/nginx/sbin/nginx -c $NGINX_PUSH_STREAM_MODULE_PATH/misc/nginx.conf
the request to /sub location is only logged when it finish. It is a stream connection.
Also, if you are using the misc/nginx.conf without changing the listen line the nginx is listening on 9080
port, not 80
.
@hiteshsomani I created a Vagrantfile for you.
Just execute a vagrant up
and after that you will be able to execute curl --raw localhost:9080/sub/ch1
in one terminal and curl localhost:9080/pub?id=ch1 -d ABC
in another.
remamber to rename the file from Vagrantfile.txt to Vagrantfile
Vagrantfile.txt
2 participants
При установке виртуальной машины Битрикс в качестве 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.
Причем «откатить» изменения через консоль не удалось, так как NodeJS RTC service не установился. Оказалось, что ключевая причина в том, что перестал запускаться Nginx. При попытке его запустить выдавалась следующая ошибка: nginx: [emerg] host not found in upstream “server1:8010”.
Первым делом я, конечно, написал обращение в техподдержку Битрикса, в то же время стал искать решение проблемы самостоятельно. Потому что ответ приходится ждать довольно долго, а «оживить» портал хотелось побыстрее.
Поиск решения занял несколько часов, причем мне в первую очередь нужно было вернуть «все как было», а не искать причину ошибки.
Сначала я открыл главный файл конфигурации 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 сервера в виртуальной машине Битрикс возникать не будет.