Настройка 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 с нуля или оптимизация существующей конфигурации — свяжитесь с нами. Получите консультацию и готовое решение под ваш проект.







