Apache для 1С-Битрикс: конфигурация под ключ с гарантией скорости

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Apache для 1С-Битрикс: конфигурация под ключ с гарантией скорости
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1330
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    924
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    672
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    815
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    714
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1051

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