Налаштування Apache для 1С-Бітрікс
Apache залишається стандартним вибором для Бітрікс — особливо в офіційному Bitrix Environment, де він працює в зв'язці з Nginx (Apache обробляє PHP, Nginx віддає статику). Але без грамотного налаштування конфігурація перетворюється на джерело багів: падає продуктивність, не працюють ЧПУ-URL, відкриваються службові директорії. Ми зібрали оптимальний конфіг, який використовуємо у всіх проектах — під ключ, з гарантією стабільності. Налаштування збільшує швидкість відповіді сервера до 20% і зменшує навантаження на процесор на 30%.
Apache як backend за Nginx
У Bitrix Environment стандартна схема: Nginx слухає 80/443, проксує PHP-запити на Apache (порт 8080). Чому так, а не навпаки? Тому що Apache чудово справляється з динамікою, а Nginx ефективніше роздає статику та обробляє паралельні з'єднання. Ось мінімальний конфіг Nginx:
location ~ \.php$ { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } Apache приймає запит, обробляє через mod_php або mod_proxy_fcgi (PHP-FPM). Ми наполегливо рекомендуємо PHP-FPM — він дає виграш у продуктивності до 2 разів порівняно з mod_php (порівняння проводили на навантаженні 1000 запитів/с). Докладніше про Apache можна прочитати на Wikipedia.
Віртуальний хост: конфігурація VirtualHost
Для кожного сайту створюємо окремий VirtualHost:
<VirtualHost *:8080> ServerName example.com DocumentRoot /var/www/bitrix <Directory /var/www/bitrix> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> <FilesMatch "\.php$"> SetHandler "proxy:unix:/run/php/php8.1-fpm-bitrix.sock|fcgi://localhost" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/bitrix_error.log CustomLog ${APACHE_LOG_DIR}/bitrix_access.log combined </VirtualHost> Ключовий рядок — AllowOverride All. Без неї Бітрікс не зможе використовувати .htaccess для ЧПУ та композитного кешу. У нашій практиці був випадок: клієнт переїхав на новий сервер, всі сторінки окрім головної видавали 404. Виявилося, в дефолтному конфігу Ubuntu Apache 2.4 стояло AllowOverride None. Одна правка — і сайт запрацював.
Додаткові параметри безпеки для VirtualHost
<Directory /var/www/bitrix/upload> <FilesMatch "\.php$"> Require all denied </FilesMatch> </Directory> <Directory /var/www/bitrix/bitrix> Require all denied </Directory> .htaccess Бітрікс і mod_rewrite
Бітрікс генерує .htaccess при включенні ЧПУ. Ось базовий вміст (він створюється автоматично, але ми перевіряємо його вручну):
Options -Indexes AddDefaultCharset UTF-8 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # Бітрікс composite (HTML-кеш) RewriteCond %{DOCUMENT_ROOT}/bitrix/html_pages/%{HTTP_HOST}/%{REQUEST_URI}/__index.html -f RewriteRule ^ /bitrix/html_pages/%{HTTP_HOST}/%{REQUEST_URI}/__index.html [L] # Перенаправлення на urlrewrite.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] </IfModule> Перевірте, чи включений mod_rewrite: a2enmod rewrite && systemctl reload apache2. Без нього ЧПУ працювати не буде.
Закриття службових директорій
Безпека — важлива частина налаштування. За замовчуванням через веб доступні каталоги bitrix/modules, bitrix/tmp та інші. Закриваємо їх:
# В /var/www/bitrix/bitrix/.htaccess <IfModule mod_authz_core.c> Require all denied </IfModule> # Заборона виконання PHP в upload <Directory /var/www/bitrix/upload> <FilesMatch "\.php$"> Require all denied </FilesMatch> </Directory> Продуктивність Apache під Бітрікс
MPM event + PHP-FPM — рекомендована зв'язка для production. Ось типові налаштування MPM:
<IfModule mpm_event_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestWorkers 150 MaxConnectionsPerChild 1000 </IfModule> MaxConnectionsPerChild 1000 — Apache перезапускає дочірні процеси після 1000 запитів. Аналог pm.max_requests у PHP-FPM — захист від витоків пам'яті.
| MPM | Потоки | Споживання пам'яті | Рекомендація |
|---|---|---|---|
| prefork | 1 потік на процес | Високе | Тільки для mod_php, не для продакшну |
| worker | Потоки, але з блокуваннями | Середнє | Застарілий |
| event | Асинхронна обробка | Низьке | Найкращий вибір для PHP-FPM |
Навантажувальне тестування (наші цифри): MPM event дає в 1,5–2 рази більше запитів на секунду при 300 одночасних користувачах порівняно з worker.
Додаткове налаштування PHP-FPM:
| Параметр | Значення | Ефект |
|---|---|---|
| pm.max_children | 50 | Збільшує паралельну обробку |
| pm.start_servers | 5 | Швидкий старт |
| pm.min_spare_servers | 5 | Стабільність при низькому навантаженні |
| pm.max_spare_servers | 10 | Оптимальне споживання пам'яті |
Як збільшити продуктивність Apache в 2 рази?
Для цього потрібно поєднати три компоненти: PHP-FPM + MPM event + правильний .htaccess з композитним кешем. Виключіть mod_php — він неефективний під навантаженням. Переконайтеся, що в конфігу VirtualHost стоїть SetHandler для PHP-FPM, а не AddType. Перевірте налаштування пулу PHP-FPM: pm.max_children має дорівнювати MaxRequestWorkers в Apache. Додатково увімкніть композитний кеш: в адміністративній панелі Бітрікс перейдіть до «Налаштування продукту › Налаштування модулів › Продуктивність › Композитний режим».
Чому варто використовувати Apache як backend за Nginx?
Apache чудово обробляє складні правила urlrewrite і сумісний з модулями Бітрікс (наприклад, mod_security). Nginx виграє на статиці та конкурентних з'єднаннях. Разом вони дають оптимальну продуктивність. До того ж Bitrix Environment офіційно підтримує цю зв'язку.
Що входить у налаштування Apache під Бітрікс
Наші сертифіковані спеціалісти проводять повний аудит та налаштування:
- Перевірка поточної конфігурації Apache та Nginx
- Налаштування VirtualHost з урахуванням версій PHP та FPM
- Увімкнення mod_rewrite, оптимізація .htaccess
- Вибір та налаштування MPM (рекомендуємо event)
- Налаштування PHP-FPM (пул, pm.max_requests)
- Закриття службових директорій, посилення безпеки
- Налаштування композитного кешу (Bitrix HTML Cache)
- Навантажувальне тестування та звіт
- Рекомендації щодо серверного кешування (Redis/Memcached)
Терміни: від 0,5 до 1 дня. Вартість розраховується індивідуально — напишіть нам, і ми оцінимо ваш проект безкоштовно. Гарантуємо стабільну роботу після налаштування — понад 5 років досвіду та 40+ успішних проектів.
Якщо вам потрібне налаштування Apache з нуля або оптимізація існуючої конфігурації — зв'яжіться з нами. Отримайте консультацію та готове рішення під ваш проект.







