Конфигурация 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/{{domain}}.conf
# Upstream для Bitrix Push-Server NodeJS
upstream push_stream {
server 127.0.0.1:8010;
}
upstream push_pub {
server 127.0.0.1:8011;
}
server {
listen 80;
server_name {{domain}} www.{{domain}};
return 301 https://{{domain}}$request_uri;
}
server {
listen 443 ssl http2;
server_name {{domain}};
root /var/www/{{domain}}/public_html;
index index.php index.html;
ssl_certificate /etc/letsencrypt/live/{{domain}}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{{domain}}/privkey.pem;
client_max_body_size {{client_max_body}};
# Защита системных файлов Битрикс
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/php{{php_version}}-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/php{{php_version}}-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
Timeweb Cloud
4 CPU / 8 GB NVMe
Процессор:
4 vCPU (3.5+ GHz)
Память RAM:
8 GB RAM (5 GB MySQL InnoDB, 2 GB PHP-FPM, 1 GB Push-Server/Redis)
Накопитель:
100 GB NVMe SSD
Selectel
4 vCPU / 8 GB RAM
Процессор:
4 vCPU (3.5+ GHz)
Память RAM:
8 GB RAM (5 GB MySQL InnoDB, 2 GB PHP-FPM, 1 GB Push-Server/Redis)
Накопитель:
100 GB NVMe SSD
Beget
Turbo 8 GB
Процессор:
4 vCPU (3.5+ GHz)
Память RAM:
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`.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.