Налаштування Bitrix Push & Pull сервера

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування Bitrix Push & Pull сервера
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування 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