Налаштування Bitrix Push & Pull сервера
Push & Pull — технологія Bitrix для real-time сповіщень: нові повідомлення в чаті, оновлення задач, сповіщення про замовлення. Працює через WebSocket або Long Polling. Без Push & Pull Bitrix24 на коробці та живі сповіщення в інтернет-магазині (зміна статусу замовлення) не працюють.
Архітектура Push & Pull
Push-сервер — окремий Node.js процес, який тримає WebSocket-з'єднання з браузерами користувачів. PHP-бекенд відправляє повідомлення на Push-сервер через HTTP, Push-сервер трансслює їх підключеним клієнтам.
Компоненти:
- nodejs — виконує Push-сервер
-
Модуль
push.senderу Bitrix — PHP API для відправки повідомлень -
Модуль
pull— клієнтська частина, підписка браузера
Установка Node.js
# Через NodeSource (рекомендується LTS)
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
# Перевірити
node --version # v20.x.x
npm --version
Установка Push-сервера Bitrix
Push-сервер розповсюджується через npm:
npm install -g bitrix-push-server
Або скачайте вручну з marketplace.1c-bitrix.ru — пакет bitrix.push-server.
Запуск:
bitrix-push-server --config /etc/bitrix/push-server.json
Приклад конфігу /etc/bitrix/push-server.json:
{
"security": {
"key": "SECRET_KEY_HERE"
},
"server": {
"port": 8893,
"hostname": "0.0.0.0"
},
"serverHTTPS": {
"port": 8894,
"hostname": "0.0.0.0",
"key": "/etc/ssl/private/site.key",
"cert": "/etc/ssl/certs/site.crt"
},
"log": {
"level": "info",
"file": "/var/log/bitrix-push-server.log"
}
}
SECRET_KEY_HERE — будь-яка довга випадкова рядок. Цей же ключ прописується в налаштуваннях модуля Push у Bitrix.
Налаштування nginx для проксування
Push-сервер слухає порт 8893 (HTTP) та 8894 (HTTPS). Nginx проксирує WebSocket-з'єднання:
location /bitrix/subws/ {
proxy_pass http://127.0.0.1:8893/bitrix/subws/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_read_timeout 3600;
proxy_send_timeout 3600;
}
location /bitrix/sub/ {
proxy_pass http://127.0.0.1:8893/bitrix/sub/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_read_timeout 3600;
}
location /bitrix/rest/ {
proxy_pass http://127.0.0.1:8893/bitrix/rest/;
proxy_set_header Host $host;
}
Налаштування модуля у Bitrix
Налаштування → Налаштування продукту → Налаштування модулів → Push та Pull:
-
Публічний шлях —
https://yoursite.ru/bitrix/ -
Приватний шлях —
http://127.0.0.1:8893/bitrix/(для PHP-бекенду) -
Ключ підпису — той самий
SECRET_KEY_HERE
Після збереження перевірте: зайдіть у Bitrix24 або секцію сповіщень — у DevTools → Network повинні з'явитися WebSocket-з'єднання до /bitrix/subws/.
Автозапуск через systemd
# /etc/systemd/system/bitrix-push.service
[Unit]
Description=Bitrix Push Server
After=network.target
[Service]
Type=simple
User=www-data
ExecStart=/usr/bin/bitrix-push-server --config /etc/bitrix/push-server.json
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl enable bitrix-push
systemctl start bitrix-push
systemctl status bitrix-push







