Налаштування 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 днів. Включає аудит, реалізацію, тестування та передачу документації. Вартість розраховується індивідуально залежно від складності серверної інфраструктури.
Готові оптимізувати ваш Бітрікс? Замовте налаштування під ключ — отримайте готову конфігурацію з документацією. Гарантуємо сумісність з офіційними оновленнями та безпеку. Зв'яжіться з нами для аудиту.







