Настройка Apache для 1С-Битрикс
Apache остаётся стандартным выбором для Битрикс — особенно в официальном Bitrix Environment, где он работает в связке с Nginx (Apache обрабатывает PHP, Nginx отдаёт статику). Но без грамотной настройки конфигурация превращается в источник багов: падает производительность, не работают ЧПУ-URL, открываются служебные директории. Мы за 7 лет собрали оптимальный конфиг, который используем во всех проектах — под ключ, с гарантией стабильности. Настройка увеличивает скорость ответа сервера до 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 лет опыта и 50+ успешных проектов.
Если вам требуется настройка Apache с нуля или оптимизация существующей конфигурации — свяжитесь с нами. Получите консультацию и готовое решение под ваш проект.







