Готовый Nginx config для Bitrix
При переносе сайта на 1С-Битрикс или настройке нового сервера часто возникает одна и та же задача: нужен рабочий Nginx config для Bitrix, который корректно обрабатывает ЧПУ, PHP-файлы, статические файлы, HTTPS и системные директории CMS.
Ниже приведён готовый пример конфигурации Nginx для сайта на Битрикс. Его можно использовать как базовый шаблон и доработать под свой домен, версию PHP и структуру сервера.
Что делает этот конфиг
- перенаправляет HTTP на HTTPS;
- корректно обрабатывает ЧПУ через
/bitrix/urlrewrite.php; - передаёт PHP-файлы в PHP-FPM;
- отдаёт статику напрямую через Nginx;
- закрывает доступ к служебным и скрытым файлам;
- подходит для типового сайта на 1С-Битрикс.
Готовый Nginx config для Bitrix
server {
listen 80;
server_name example.ru www.example.ru;
return 301 https://example.ru$request_uri;
}
server {
listen 443 ssl http2;
server_name example.ru www.example.ru;
root /var/www/example.ru;
index index.php index.html;
client_max_body_size 100M;
ssl_certificate /etc/letsencrypt/live/example.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.ru/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
if ($host = www.example.ru) {
return 301 https://example.ru$request_uri;
}
location / {
try_files $uri $uri/ /bitrix/urlrewrite.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
}
location ~* \.(jpg|jpeg|gif|png|webp|svg|ico|css|js|woff|woff2|ttf|eot|mp4|webm|ogg|ogv|pdf|zip|rar)$ {
expires 30d;
access_log off;
log_not_found off;
try_files $uri =404;
}
location ~ /\. {
deny all;
}
location ~* /(bitrix|local)/(backup|cache|managed_cache|stack_cache)/ {
deny all;
}
location ~* /(upload|bitrix|local)/.*\.(php|php3|php4|php5|php7|phtml|phar)$ {
deny all;
}
location = /favicon.ico {
access_log off;
log_not_found off;
}
location = /robots.txt {
access_log off;
log_not_found off;
}
}
Что нужно заменить под себя
Перед использованием конфига обязательно замените следующие значения:
example.ru— на ваш домен;/var/www/example.ru— на путь к корню сайта;php8.2-fpm.sock— на вашу версию PHP-FPM;- пути к SSL-сертификатам — на актуальные пути Let’s Encrypt.
Почему для Bitrix важен urlrewrite.php
В 1С-Битрикс большинство ЧПУ-страниц обрабатываются не как физические файлы, а через внутренний механизм роутинга.
Поэтому в блоке location / используется строка:
try_files $uri $uri/ /bitrix/urlrewrite.php?$args;
Это означает: если Nginx не нашёл физический файл или директорию, запрос передаётся в
/bitrix/urlrewrite.php, а Битрикс уже сам определяет, какой компонент и шаблон нужно подключить.
Проверка PHP-FPM
Если после настройки сайта PHP-файлы скачиваются или отдают ошибку 502, чаще всего проблема в неправильном пути к сокету PHP-FPM.
Проверить доступные сокеты можно командой:
ls /run/php/
Например, если на сервере используется PHP 8.2, чаще всего путь будет таким:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
Проверка конфига Nginx
После изменения конфигурации обязательно проверьте её на ошибки:
nginx -t
Если ошибок нет, перезагрузите Nginx:
systemctl reload nginx
Частые ошибки при настройке Nginx для Bitrix
Страницы отдают 404
Обычно это происходит, если в location / не прописана передача запросов в
/bitrix/urlrewrite.php.
Ошибка 502 Bad Gateway
Чаще всего причина в неправильном пути к PHP-FPM сокету или в том, что служба PHP-FPM не запущена.
systemctl status php8.2-fpm
Не открывается админка Битрикс
Проверьте права на файлы, корректность PHP-FPM, наличие директории /bitrix/ и отсутствие слишком жёстких
правил deny в конфигурации Nginx.
Не работают ЧПУ
Проверьте, что в конфиге используется именно такая конструкция:
try_files $uri $uri/ /bitrix/urlrewrite.php?$args;
Дополнительная защита
В конфиге закрыт доступ к скрытым файлам, PHP-файлам внутри /upload/, а также к некоторым служебным
директориям Битрикс. Это снижает риск запуска вредоносных файлов, если они случайно окажутся в публичных папках сайта.
Особенно важно запрещать выполнение PHP в директории /upload/, потому что именно туда чаще всего могут
попасть загруженные пользователями файлы.
Итог
Готовый Nginx config для Bitrix должен учитывать особенности CMS: ЧПУ через
urlrewrite.php, работу PHP-FPM, отдачу статики и базовые правила безопасности.
Приведённый выше конфиг можно использовать как основу для большинства сайтов на 1С-Битрикс.
Перед применением на рабочем сайте обязательно сделайте резервную копию текущей конфигурации и проверьте результат
командой nginx -t.
Комментарии