Настройка Push & Pull сервера Битрикс: установка и оптимизация

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

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

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • 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 Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Когда в Битрикс24 не приходят уведомления о новых задачах, сообщениях или изменениях статусов заказов — почти всегда виноват неправильно настроенный Push & Pull сервер?

Без него система использует Long Polling, что даёт задержки в 30+ секунд и создаёт лишнюю нагрузку на сервер. Мы берём на себя полную настройку этого компонента: от установки Node.js до интеграции с модулем pull и проверки WebSocket-соединений. Свяжитесь с нами для бесплатной оценки проекта.

Как работает 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-соединений и уведомлений
  • Передача документации и доступов

Типичные ошибки при настройке 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) Низкая (работает из коробки)

Процесс работы

  1. Анализ — изучаем текущую архитектуру и нагрузку.
  2. Проектирование — определяем оптимальную конфигурацию (порты, ключи, nginx).
  3. Развёртывание — устанавливаем и настраиваем Push-сервер.
  4. Тестирование — проверяем all real-time сценарии (чаты, уведомления, корзина).
  5. Документирование — передаём итоговые конфиги и инструкции.

Ориентировочные сроки и стоимость

Настройка занимает от 1 до 3 рабочих дней в зависимости от сложности инфраструктуры. Стоимость настройки — от 15 000 до 60 000 ₽ в зависимости от объёма работ. Экономия на инфраструктуре — до 30 000 ₽ в месяц при переходе на WebSocket вместо Long Polling. В стоимость входит гарантия работоспособности в течение 14 дней после сдачи. Опыт нашей команды — более 5 лет настройки Битрикс и 30+ успешных проектов.

Подробнее о технологии WebSocket можно прочитать на Wikipedia.

Закажите настройку Push-сервера под ключ — получите консультацию и оценку проекта бесплатно.