תצורת Apache עבור 1C-Bitrix
Apache נותר הבחירה הסטנדרטית עבור Bitrix—במיוחד בסביבת Bitrix הרשמית, שם הוא פועל לצד Nginx (Apache מטפל ב-PHP, Nginx מגיש קבצים סטטיים). אך ללא תצורה נכונה, ההתקנה הופכת למקור לתקלות: ביצועים יורדים, כתובות SEF מפסיקות לעבוד, ותיקיות רגישות הופכות לנגישות. במשך 7 שנים, ריכזנו תצורה אופטימלית שבה אנו משתמשים בכל הפרויקטים—מוכנה לשימוש, עם אחריות ליציבות. התצורה שלנו מגדילה את מהירות תגובת השרת בעד 20% ומפחיתה את עומס המעבד ב-30%.
Apache כשרת אחורי מאחורי Nginx
בסביבת Bitrix, הארכיטקטורה הסטנדרטית היא: 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 מקבל את הבקשה ומעבד אותה דרך 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; } או mod_php (PHP-FPM). אנו ממליצים בחום על PHP-FPM—הוא מספק שיפור ביצועים של עד פי 2 בהשוואה ל-mod_php (בהתבסס על מבחני העומס שלנו ב-1000 בקשות לשנייה). פרטים נוספים על Apache ניתן למצוא בויקיפדיה.
מארח וירטואלי: תצורת 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>השורה המרכזית היא mod_proxy_fcgi. בלעדיה, Bitrix לא יכול להשתמש ב-<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> עבור כתובות SEF וקאש מרוכב. בניסיון שלנו, היה מקרה: לקוח עבר לשרת חדש, וכל הדפים מלבד דף הבית החזירו 404. בתצורת ברירת המחדל של Ubuntu Apache 2.4 היה AllowOverride All. תיקון אחד—והאתר עבד.
פרמטרי אבטחה נוספים עבור VirtualHost
<Directory /var/www/bitrix/upload>
<FilesMatch "\.php$">
Require all denied
</FilesMatch>
</Directory>
<Directory /var/www/bitrix/bitrix>
Require all denied
</Directory> קובץ .htaccess של Bitrix ו-mod_rewrite
Bitrix יוצר קובץ .htaccess כאשר כתובות SEF מופעלות. הנה התוכן הבסיסי (הוא נוצר אוטומטית, אך אנו בודקים אותו ידנית):
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 מופעל: AllowOverride None. בלעדיו, כתובות SEF לא יעבדו.
אבטחת תיקיות רגישות
אבטחה היא חלק חיוני מהתצורה. כברירת מחדל, תיקיות כמו <Directory /var/www/bitrix/upload> <FilesMatch "\.php$"> Require all denied </FilesMatch> </Directory> <Directory /var/www/bitrix/bitrix> Require all denied </Directory> , .htaccess ואחרות נגישות דרך האינטרנט. אנו סוגרים אותן:
# В /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 עבור Bitrix
MPM 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> + PHP-FPM—הערימה המומלצת לסביבת ייצור. הנה הגדרות MPM טיפוסיות:
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
</IfModule>a2enmod rewrite && systemctl reload apache2—Apache מאתחל תהליכי ילד לאחר 1000 בקשות, בדומה ל-bitrix/modules ב-PHP-FPM, ומגן מפני דליפות זיכרון.
| MPM | חוטים | שימוש בזיכרון | המלצה |
|---|---|---|---|
| prefork | חוט אחד לכל תהליך | גבוה | רק עבור 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 עבור Bitrix?
שלבו שלושה מרכיבים: PHP-FPM + MPM event + קובץ .htaccess נכון עם קאש מרוכב. הימנעו מ-mod_php—הוא לא יעיל בעומס. ודאו שתצורת ה-VirtualHost משתמשת ב-bitrix/tmp עבור PHP-FPM, לא ב-# В /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> . בדקו את הגדרות מאגר ה-PHP-FPM: event צריך להיות שווה ל-<IfModule mpm_event_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestWorkers 150 MaxConnectionsPerChild 1000 </IfModule> ב-Apache. בנוסף, הפעילו קאש מרוכב: בלוח הניהול של Bitrix, עברו ל"הגדרות > הגדרות מוצר > הגדרות מודול > ביצועים > מצב מרוכב".
למה להשתמש ב-Apache כשרת אחורי מאחורי Nginx?
Apache מצטיין בטיפול בכללי urlrewrite מורכבים ותואם למודולים של Bitrix (לדוגמה, MaxConnectionsPerChild 1000). Nginx מנצח בתוכן סטטי ובחיבורים מקבילים. יחד הם מספקים ביצועים אופטימליים. יתרה מכך, סביבת Bitrix תומכת רשמית בשילוב זה.
מה כלול בתצורת Apache עבור Bitrix
המומחים המוסמכים שלנו מבצעים ביקורת ותצורה מלאה:
- סקירת תצורת Apache ו-Nginx הנוכחית
- התקנת VirtualHost עם גרסאות PHP ו-FPM מתאימות
- הפעלת mod_rewrite, אופטימיזציה של .htaccess
- בחירה וכיוונון של MPM (אנו ממליצים על event)
- תצורת מאגר PHP-FPM (pm.max_requests וכו')
- אבטחת תיקיות רגישות, חיזוק אבטחה
- תצורת קאש מרוכב (Bitrix HTML Cache)
- מבחני עומס ודוח
- המלצות לקאש בצד השרת (Redis/Memcached)
לוח זמנים: בין 0.5 ליום אחד. העלות מחושבת באופן אישי—צרו קשר להערכת פרויקט חינמית. אנו מבטיחים פעולה יציבה לאחר התצורה—מעל 7 שנות ניסיון ו-50+ פרויקטים מוצלחים.
אם אתם זקוקים לתצורת Apache מאפס או לאופטימיזציה של התקנה קיימת, צרו קשר. קבלו ייעוץ ופתרון מוכן לשימוש עבור הפרויקט שלכם.

