Apache עבור 1C-Bitrix: הגדרה סוהר עם אחריות למהירות

Apache נותר הבחירה הסטנדרטית עבור 1C-Bitrix, אך ללא תצורה נכונה הוא הופך למקור לתקלות: המהירות יורדת, כתובות CNC נשברות, וספריות שירות הופכות לנגישות. אנו מגדירים Apache במתכונת מלאה—החל מתצורת שרת וירטואלי ועד אופטימיזציה של המחסנית עם Nginx ו-PHP-FPM. הצוות שלנו מטפל בכל המחזור, ומבטיח פעילות יציבה ותמיכה מתמשכת לפרויקט שלך.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
Apache עבור 1C-Bitrix: הגדרה סוהר עם אחריות למהירות
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

תצורת 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 מאפס או לאופטימיזציה של התקנה קיימת, צרו קשר. קבלו ייעוץ ופתרון מוכן לשימוש עבור הפרויקט שלכם.