Конфигурация Nginx для 1С-Битрикс: сокеты Push and Pull, буферизация и лимиты памяти
Готовый конфиг 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 {}` и перезагрузите веб-сервер.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.