Настройка Bitrix Push & Pull сервера
Push & Pull — технология Битрикс для real-time уведомлений: новые сообщения в чате, обновления задач, уведомления о заказах. Работает через WebSocket или Long Polling. Без Push & Pull Битрикс24 на коробке и живые уведомления в интернет-магазине (смена статуса заказа) не работают.
Архитектура Push & Pull
Push-сервер — отдельный Node.js процесс, который держит WebSocket-соединения с браузерами пользователей. PHP-бэкенд отправляет сообщения на Push-сервер через HTTP, Push-сервер транслирует их подключённым клиентам.
Компоненты:
- nodejs — выполняет Push-сервер
-
Модуль
push.senderв Битрикс — 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-сервера Битрикс
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 в Битрикс.
Настройка 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;
}
Настройка модуля в Битрикс
Настройки → Настройки продукта → Настройки модулей → Push и Pull:
-
Публичный путь —
https://yoursite.ru/bitrix/ -
Приватный путь —
http://127.0.0.1:8893/bitrix/(для PHP-бэкенда) -
Ключ подписи — тот же
SECRET_KEY_HERE
После сохранения проверьте: зайдите в Битрикс24 на коробке или в раздел с уведомлениями — в 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







