Конфигурация Nginx для 1С-Битрикс: сокеты Push and Pull, буферизация и лимиты памяти

Обновлено: Сентябрь 2026 Стек: Nginx 1.26+ / 1.27++, PHP 8.1/8.2, 1C-Bitrix 24.x, Bitrix Push-Server Проверено: Production-Ready

Готовый конфиг Nginx для 1С-Битрикс: поддержка модуля Push and Pull (WebSocket и Long Polling), правильные буферы FastCGI, защита /bitrix/admin и сокеты.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/nginx/sites-available/bitrix.example.com.conf
# /etc/nginx/sites-available/bitrix.example.com.conf
# Upstream для Bitrix Push-Server NodeJS
upstream push_stream {
    server 127.0.0.1:8010;
}
upstream push_pub {
    server 127.0.0.1:8011;
}


    listen 80;
    server_name bitrix.example.com www.bitrix.example.com;
    return 301 https://bitrix.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name bitrix.example.com;

    root /var/www/bitrix.example.com/public_html;

    # Security Headers
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

    index index.php index.html;

    ssl_certificate /etc/letsencrypt/live/bitrix.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/bitrix.example.com/privkey.pem;

    client_max_body_size 256M;

    # Защита системных файлов Битрикс
    location ~* /\\.(ht|git|svn) { deny all; }
    location ~* ^/bitrix/modules/ { deny all; }
    location ~* ^/bitrix/local/modules/ { deny all; }
    location ~* ^/bitrix/php_interface/ { deny all; }
    location ~* ^/upload/support/not_image/ { deny all; }

    # Bitrix Push & Pull WebSocket проксирование
    location /bitrix/subws {
        proxy_pass http://push_stream;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400s;
    }

    # Bitrix Push & Pull Long-Polling
    location /bitrix/sub {
        proxy_pass http://push_stream;
        proxy_read_timeout 60s;
    }

    # Публикация событий (только localhost)
    location /bitrix/pub {
        proxy_pass http://push_pub;
        allow 127.0.0.1;
        deny all;
    }

    # Статика Битрикс
    location ~* ^/(bitrix|local)/(templates|components|gadgets|js|images)/.*\\.(css|js|gif|png|jpg|jpeg|ico|svg|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, max-age=2592000";
        access_log off;
    }

    location ~* ^/upload/.*\\.(css|js|gif|png|jpg|jpeg|ico|svg|webp|avif)$ {
        expires 30d;
        add_header Cache-Control "public";
        access_log off;
    }

    location / {
        try_files $uri $uri/ @bitrix;
    }

    location @bitrix {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
    }

    location ~ \\.php$ {
        try_files $uri @bitrix;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 256 16k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_read_timeout 300s;
    }
}

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
proxy_set_header Upgrade $http_upgrade; WebSocket Upgrade Обеспечивает мгновенный апгрейд HTTP-соединения в WebSocket для модуля Push and Pull (чаты, уведомления Битрикс24).
location ~* ^/bitrix/modules/ deny all; Строго закрывает доступ к ядру модулей 1С-Битрикс, предотвращая чтение конфигов и исходников.
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php; URL Rewrite Битрикс Передает обработку ЧПУ главному роутеру urlrewrite.php.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 4 vCPU, 8 GB RAM, 100 GB NVMe, Debian 12 / AlmaLinux 9
Расчетная нагрузка: Интернет-магазин на Битрикс до 50k товаров + Битрикс24
4 CPU / 8 GB NVMe
⚡

Timeweb Cloud

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 8 GB RAM (5 GB MySQL InnoDB, 2 GB PHP-FPM, 1 GB Push-Server/Redis) / 100 GB NVMe SSD
4 vCPU / 8 GB RAM
🔷

Selectel

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 8 GB RAM (5 GB MySQL InnoDB, 2 GB PHP-FPM, 1 GB Push-Server/Redis) / 100 GB NVMe SSD
Turbo 8 GB
🟠

Beget

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 8 GB RAM (5 GB MySQL InnoDB, 2 GB PHP-FPM, 1 GB Push-Server/Redis) / 100 GB NVMe SSD

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Push-Server не подключается через WebSocket (ошибка 400 или 502)
Убедитесь, что служба NodeJS Push-Server запущена на порту 8010 (`systemctl status push-server`) и в Nginx задан заголовок `Upgrade $http_upgrade`.
Как проверить конфигурацию Nginx перед перезагрузкой?
Всегда выполняйте команду `nginx -t`. Если синтаксис верный, примените настройки командой `systemctl reload nginx` без остановки сайта.
Что делать при ошибке 413 Request Entity Too Large?
Увеличьте директиву `client_max_body_size 128M;` в блоке `http {}` или `server {}` и перезагрузите веб-сервер.