Налаштування Apache для 1С-Бітрікс: конфігурація під ключ

Налаштування Apache для 1С-Бітрікс Apache залишається стандартним вибором для Бітрікс — особливо в офіційному Bitrix Environment, де він працює в зв'язці з Nginx (Apache обробляє PHP, Nginx віддає статику). Але без грамотного налаштування конфігурація перетворюється на джерело багів: падає продук
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування Apache для 1С-Бітрікс: конфігурація під ключ
Простий
~1 день

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1017
  • 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
    759
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    802
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1161

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