Nginx: конфигурация для Bitrix CMS с PHP-FPM
Официальная конфигурация Nginx для Bitrix CMS с поддержкой PHP-FPM, URL rewriting, кеширования статики и безопасности. Основано на документации Bitrix24.
Конфигурация Nginx для Bitrix CMS с PHP-FPM. Основано на официальной документации Bitrix24.
Базовая конфигурация
server {
listen 80;
server_name example.com www.example.com;
root /var/www/bitrix;
index index.php index.html;
# Увеличенный размер для загрузки файлов
client_max_body_size 200m;
access_log /var/log/nginx/bitrix-access.log;
error_log /var/log/nginx/bitrix-error.log;
# Основной location с URL rewriting
location / {
try_files $uri $uri/ @bitrix;
}
# URL rewriting через Bitrix
location @bitrix {
rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}
# Обработка PHP
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
# Таймауты для Bitrix
fastcgi_read_timeout 300s;
fastcgi_connect_timeout 300s;
}
# Защита чувствительных директорий
location ~ ^/(bitrix/modules|bitrix/php_interface|bitrix/tmp|bitrix/cache|\.svn|\.ht) {
deny all;
return 404;
}
# Статические файлы с кешированием
location ~* \.(jpg|jpeg|gif|png|css|js|ico|svg|woff|woff2|ttf|eot|pdf)$ {
expires max;
access_log off;
log_not_found off;
}
# Защита скрытых файлов
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}
С поддержкой HTTPS
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
root /var/www/bitrix;
index index.php index.html;
client_max_body_size 200m;
# SSL сертификаты
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
access_log /var/log/nginx/bitrix-access.log;
error_log /var/log/nginx/bitrix-error.log;
location / {
try_files $uri $uri/ @bitrix;
}
location @bitrix {
rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_read_timeout 300s;
fastcgi_connect_timeout 300s;
}
location ~ ^/(bitrix/modules|bitrix/php_interface|bitrix/tmp|bitrix/cache|\.svn|\.ht) {
deny all;
return 404;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|svg|woff|woff2|ttf|eot|pdf)$ {
expires max;
access_log off;
log_not_found off;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}
Важные замечания
⚠️ URL rewriting: Bitrix использует собственный механизм URL rewriting через /bitrix/urlrewrite.php. Директива try_files должна заканчиваться на @bitrix, который перенаправляет запросы в этот файл.
⚠️ Размер загрузки: client_max_body_size 200m необходим для загрузки файлов через админ-панель Bitrix.
⚠️ Таймауты: Увеличенные таймауты (300s) необходимы для обработки сложных операций Bitrix (импорт/экспорт, обработка больших файлов).
⚠️ Защита директорий: Обязательно защитите директории bitrix/modules, bitrix/php_interface, bitrix/tmp и bitrix/cache от прямого доступа.
Источники: