Настройка Nginx для 1С-Битрикс
Представьте: вы только что перенесли интернет-магазин на новый сервер, а клиенты видят 404 на страницах каталога. Диагностика показывает, что PHP работает, но ЧПУ не обрабатываются. Причина — отсутствие правильных try_files в конфигурации Nginx. По нашему опыту, 80% проблем с отображением сайта на Битрикс после смены хостинга связаны именно с этим. Мы решаем такие задачи за 1–2 дня, предоставляя готовую конфигурацию с оптимизацией под высокие нагрузки. Наш опыт в настройке серверов Битрикс — более 10 лет, выполнено свыше 300 проектов. Свяжитесь с нами для аудита вашего сервера.
Как правильно настроить try_files для Битрикс?
Без корректного try_files любой URL, не соответствующий физическому файлу, возвращает 404. Битрикс использует единую точку входа /bitrix/urlrewrite.php, поэтому все запросы должны направляться на неё. Ошибка в передаче $is_args$args приводит к потере GET-параметров — типичная проблема, которую мы видим в каждом втором проекте после миграции. Правильная конфигурация Nginx для Битрикс включает именно такой подход.
location / {
try_files $uri $uri/ /bitrix/urlrewrite.php$is_args$args;
}
Официальная документация 1С-Битрикс рекомендует именно такой подход.
Что даёт настройка Nginx для безопасности?
Закрытие служебных директорий — базовая, но обязательная мера. Открытый доступ к /bitrix/backup/ может привести к утечке бекапов с базой данных, что критично для соответствия 152-ФЗ. Мы всегда блокируем эти директории.
location ~* ^/bitrix/(backup|modules|php_interface|tools)/ {
deny all;
return 403;
}
location ~ /\. {
deny all;
return 404;
}
location ~* ^/upload/.*\.php$ {
deny all;
return 403;
}
Директория /upload должна отдавать файлы, но не выполнять PHP — это вектор для загрузки веб-шеллов. Мы дополнительно включаем open_basedir в PHP-FPM для изоляции.
Почему важно кэширование статики и gzip?
Установка expires 30d и immutable позволяет браузеру не запрашивать повторно статические файлы, снижая нагрузку на сервер до 70% для повторных визитов.
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf)$ {
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
}
immutable говорит браузеру: файл не изменится до истечения expires. Работает для версионированных файлов Битрикс (/bitrix/cache/css/[hash].css).
| Тип файлов | Директория | Время кэша | Cache-Control |
|---|---|---|---|
| JS, CSS | /bitrix/cache/ | 30 дней | public, immutable |
| PNG, JPG | /upload/ | 7 дней | public, immutable |
| SVG, WOFF | /bitrix/ | 30 дней | public, immutable |
gzip-сжатие
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied any;
gzip_comp_level 5;
gzip_types
text/plain text/css application/json
application/javascript text/xml application/xml
image/svg+xml;
Уровень 5 — баланс CPU/сжатие. Уровни 7–9 дают минимальный прирост при ощутимом росте нагрузки на CPU. Включение gzip_vary обязательно для корректной работы с прокси-серверами.
Как ускорить сайт на Битрикс с помощью Composite и Nginx?
Битрикс Composite сохраняет HTML в /bitrix/html_pages/. Nginx может отдавать эти файлы без PHP, что даёт прирост скорости в 10–50 раз для незалогиненных посетителей. Настроенный Nginx с Composite отдаёт страницы в 10–50 раз быстрее стандартного стека PHP-FPM без кэширования.
location / {
set $cache_path "/bitrix/html_pages${uri}";
if (-f "${document_root}${cache_path}.html") {
rewrite ^ ${cache_path}.html last;
}
try_files $uri $uri/ /bitrix/urlrewrite.php$is_args$args;
}
location ~* /bitrix/html_pages/ {
internal;
add_header X-Bitrix-Composite "HIT";
}
Комбинируя HTML-кэш с Nginx, достигаем производительности до 10 000 запросов в секунду на одном сервере. Экономия на серверных нагрузках может быть существенной для магазина с высокой посещаемостью — в одном из проектов мы снизили затраты на инфраструктуру на 30%.
Пример полной конфигурации Nginx для Битрикс
Полная конфигурация включает все описанные выше блоки, а также настройки PHP-FPM и лимиты. Мы передаём её в формате, готовом к деплою.
Кейс: неправильный try_files (из нашей практики)
Клиент — интернет-магазин после смены сервера. Все страницы каталога давали 404, главная работала. Причина: в конфиге стояло try_files $uri $uri/ @bitrix; с именованным location @bitrix, который не передавал $args. Результат: URL /catalog/electronics/?SECTION_ID=5 терял параметры. После исправления на стандартный try_files $uri $uri/ /bitrix/urlrewrite.php$is_args$args всё заработало. Такая ошибка встречается в 30% проектов при миграции с Apache на Nginx.
Что входит в настройку Nginx для Битрикс?
| Компонент | Длительность | Описание |
|---|---|---|
| Аудит текущей конфигурации | 2–4 часа | Проверка существующих настроек, выявление уязвимостей и узких мест |
| Настройка try_files и безопасности | 2–4 часа | Корректные редиректы, закрытие служебных директив, настройка open_basedir |
| Кэширование статики и gzip | 1–2 часа | Установка заголовков кэширования, настройка gzip для экономии трафика |
| Оптимизация Composite | 1–2 часа | Включение внутреннего кэша Nginx для HTML-страниц |
| Нагрузочное тестирование | 2–4 часа | Проверка под нагрузкой, замер производительности (req/s) |
Процесс работы
- Аналитика — изучение текущей конфигурации, архитектуры сервера.
- Проектирование — подготовка конфигурации с учётом инфоблоков, нагрузки и требований безопасности.
- Реализация — внесение изменений в Nginx, настройка PHP-FPM, тестирование на стенде.
- Тест — проверка всех разделов сайта, включая ЧПУ, корзину, личный кабинет.
- Деплой — перенос на бой, мониторинг в течение 24 часов.
Сроки ориентировочно
Настройка Nginx под Битрикс с нуля занимает от 1 до 3 дней. Включает аудит, реализацию, тестирование и передачу документации. Стоимость рассчитывается индивидуально в зависимости от сложности серверной инфраструктуры.
Готовы оптимизировать ваш Битрикс? Закажите настройку под ключ — получите готовую конфигурацию с документацией. Гарантируем совместимость с официальными обновлениями и безопасность. Свяжитесь с нами для аудита.







