Налаштування Push & Pull сервера для real-time сповіщень у Бітрікс24
Коли в Бітрікс24 не приходять сповіщення про нові завдання, повідомлення або зміни статусів замовлень — майже завжди винний неправильно налаштований Push & Pull сервер. Без нього система використовує Long Polling, що дає затримки в 30+ секунд і створює зайве навантаження на сервер. Ми беремо на себе повне налаштування цього компонента: від установки Node.js до інтеграції з модулем pull та перевірки WebSocket-з'єднань. Зв'яжіться з нами для безкоштовної оцінки проекту.
Проблеми, які ми вирішуємо
1. Великі затримки сповіщень
При використанні Long Polling затримка доставки сповіщення може сягати 30 секунд і більше. Для інтернет-магазинів це означає, що клієнт не бачить оновлення статусу замовлення в реальному часі, а співробітники — нові повідомлення в чаті.
2. Надмірне навантаження на сервер
Кожен клієнт при Long Polling постійно тримає HTTP-з'єднання, що призводить до зростання споживання CPU та пам’яті. При 5000 одночасних підключень різниця в пам’яті між Long Polling та WebSocket досягає 60%.
3. Некоректна робота модуля pull
Без правильно налаштованого Push-сервера модуль pull у Бітрікс не може отримувати сповіщення в реальному часі, що призводить до збоїв у роботі додатків.
Як ми це робимо (доказ експертності)
Архітектура Push & Pull сервера
Push-сервер — окремий процес на Node.js, який тримає постійні WebSocket-з'єднання з браузерами користувачів. PHP-бекенд відправляє повідомлення на Push-сервер через HTTP, а той транслює їх усім підключеним клієнтам. Компоненти:
| Компонент | Призначення |
|---|---|
| Node.js (Push-сервер) | Управління WebSocket-з'єднаннями та розсилка сповіщень |
Модуль push.sender (PHP) |
API для відправки push-повідомлень з Бітрікс |
Модуль pull (JS) |
Клієнтська підписка на сповіщення в браузері |
Чому WebSocket кращий за Long Polling?
WebSocket забезпечує двосторонній зв’язок у реальному часі без постійних HTTP-запитів. У тестах він у 2–3 рази швидший за Long Polling за швидкістю доставки та знижує навантаження на CPU до 60%. Для інтернет-магазинів це критично: сповіщення про зміну статусу замовлення приходить миттєво, а не через 30 секунд. При 5000 одночасних підключень WebSocket використовує на 60% менше пам’яті, ніж Long Polling, що суттєво економить ресурси сервера. Згідно з документацією Bitrix, впровадження WebSocket (вебсокети) в Бітрікс дозволяє скоротити витрати на серверну інфраструктуру до 30%.
Як налаштувати Push-сервер за годину?
Установка Node.js LTS та пакета bitrix-push-server займає не більше 15 хвилин. Конфігурація — ще 10 хвилин, налаштування nginx — 5 хвилин. Решту часу йде на інтеграцію з Бітрікс та тестування. У складних випадках (наприклад, кластеризація) процес може зайняти до 3 днів.
Установка Node.js (LTS)
Використовуйте офіційний 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 Server через npm або завантажте з marketplace.1c-bitrix.ru. Приклад конфігураційного файлу /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 для проксіювання WebSocket
Push-сервер слухає порти 8893 (HTTP) та 8894 (HTTPS). Додайте в конфігурацію nginx:
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; } Інтеграція з модулем pull у Бітрікс
В адміністративному інтерфейсі: Налаштування → Налаштування продукту → Налаштування модулів → Push і Pull. Вкажіть:
- Публічний шлях —
https://yoursite.ru/bitrix/ - Приватний шлях —
http://127.0.0.1:8893/bitrix/ - Ключ підпису — той самий
SECRET_KEY_HERE
Після збереження перевірте в браузері (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.
Що входить у налаштування під ключ?
- Аудит поточної конфігурації сервера та Бітрікс
- Установка Node.js LTS та пакета bitrix-push-server
- Створення конфігураційного файла з унікальним ключем безпеки
- Налаштування nginx для проксіювання WebSocket (HTTP та HTTPS)
- Інтеграція модуля
pullв адмінці Бітрікс - Налаштування автозапуску через systemd
- Тестування WebSocket-з’єднань та сповіщень
- Передача документації та доступів
Процес оцінки та роботи
- Аналіз — вивчаємо поточну архітектуру та навантаження.
- Проектування — визначаємо оптимальну конфігурацію (порти, ключі, nginx).
- Розгортання — встановлюємо та налаштовуємо Push-сервер.
- Тестування — перевіряємо всі real-time сценарії (чати, сповіщення, корзина).
- Документування — передаємо підсумкові конфіги та інструкції.
Орієнтири по термінах
Налаштування займає від 1 до 3 робочих днів залежно від складності інфраструктури. Вартість визначається після аналізу. Економія на інфраструктурі — до $270–390 на місяць при переході на WebSocket замість Long Polling. У вартість входить гарантія працездатності протягом 14 днів після здачі. Досвід нашої команди — понад 5 років налаштування Бітрікс та 30+ успішних проектів.
Типові помилки при налаштуванні Push-сервера
- Невідповідність ключа безпеки в конфігу та налаштуваннях Бітрікс
- Блокування портів 8893/8894 фаєрволом
- Відсутність модуля
mod_proxy_wstunnelу nginx - Неправильний публічний шлях (має закінчуватися на
/bitrix/) - Використання застарілої версії Node.js (нижче 18)
Порівняння WebSocket та Long Polling
| Параметр | WebSocket | Long Polling |
|---|---|---|
| Затримка доставки | 100–500 мс | 20–30 с |
| Навантаження на CPU | Низьке | Високе (постійні HTTP-запити) |
| Витрати пам’яті на 5000 з’єднань | ~200 МБ | ~500 МБ |
| Складність налаштування | Середня (потребує nginx) | Низька (працює з коробки) |
Детальніше про технологію WebSocket можна прочитати на Wikipedia. Замовте налаштування Push-сервера під ключ — отримайте консультацію та оцінку проекту безкоштовно.







