תצורת Apache: אופטימיזציה, אבטחה וקישוריות

כאשר האתר שלכם מתחיל להאט או לזרוק שגיאות תחת תעבורה גוברת, הבעיה נעוצה פעמים רבות בתצורת שרת אינטרנט לא אופטימלית. אנו מגדירים Apache turnkey: מייעלים הגדרות, מחזקים אבטחה ומיישמים caching אפקטיבי. הצוות שלנו מטפל במחזור כולו—מביקורת ועד תמיכה שוטפת—כך שהפתרון שלכם פועל באמינות ומתרחב עם העסק שלכם.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
תצורת Apache: אופטימיזציה, אבטחה וקישוריות
בינוני
~1 יום

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

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1306
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

תצורת Apache: אופטימיזציה, אבטחה וקישוריות מטמון

דמיינו: חנות מסחר אלקטרוני מבוססת WordPress עם 1000 מבקרים ייחודיים בשעה זורקת שגיאת 503. תמונה טיפוסית — Apache מיצה את MaxClients, ו-PHP-FPM לא מוגדר. ללא קישוריות מטמון, כל בקשה לתוכן סטטי (CSS, JS, תמונות) טוענת את השרת מחדש — LCP מזנק מעבר ל-5 שניות. ב-90% מהמקרים, זה נפתר על ידי מעבר ל-PHP-FPM דרך Unix socket והפעלת mod_expires. במשך 10 שנים, הגדרנו Apache עבור 500+ פרויקטים: מדפי נחיתה פשוטים ועד SaaS בעומס גבוה. להלן תכנית מוכחת שמפחיתה TTFB ב-30% וצריכת זיכרון ב-40%.

הבעיה הלא-מובנת מאליה היא .htaccess. בכל בקשה, Apache בודק תיקיות מהשורש ועד DocumentRoot עבור .htaccess. עבור מבנים עמוקים, זה יכול להיות עד 10 פעולות דיסק. אנו משתמשים ב-AllowOverride None ומעבירים חוקים לתצורת VirtualHost. זה מאיץ את האספקה ב-15–20%.

בעיות טיפוסיות שאנו פותרים

  • אספקת תוכן סטטי איטית — ללא mod_expires ו-mod_deflate, הדפדפן מבקש מחדש קבצים כל פעם, LCP גדל ב-30%.
  • VirtualHosts לא מאובטחים — תיקיות פתוחות, פרוטוקולים מיושנים, חוסר HSTS.
  • .htaccess שגוי — Laravel נשבר בגלל חוסר RewriteRule, .env נגיש מבחוץ.
  • PHP-FPM דרך TCP במקום Unix socket — תוספת של 20% זמן השהיה על localhost.
  • אין הגבלת קצב — לקוח יחיד יכול להוריד את כל התוכן תוך שניות.

כיצד אנו מגדירים Apache מוכן לשימוש

הערימה שלנו: Apache 2.4+, PHP 8.3 (FPM דרך socket), Laravel, WordPress, כל CMS. עבור כל פרויקט, אנו יוצרים תצורה מוכנת לייצור המותאמת לעומס. הנה דוגמה עבור Laravel:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/myapp/current/public
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    Protocols h2 http/1.1
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    Header always set X-Frame-Options "DENY"
    <Directory /var/www/myapp/current/public>
        AllowOverride All
        Require all granted
        Options -Indexes
    </Directory>
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost"
    </FilesMatch>
    <FilesMatch "\.(css|js|jpg|png|gif|ico|svg|woff2)$">
        Header set Cache-Control "public, max-age=31536000, immutable"
    </FilesMatch>
    ErrorLog ${APACHE_LOG_DIR}/myapp-error.log
    CustomLog ${APACHE_LOG_DIR}/myapp-access.log combined
</VirtualHost>
דוגמת תצורה עבור WordPress עם אופטימיזציה נוספת
<VirtualHost *:443>
    ServerName blog.example.com
    DocumentRoot /var/www/wp/current
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/blog.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/blog.example.com/privkey.pem
    Protocols h2 http/1.1
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    Header always set X-Content-Type-Options "nosniff"
    <Directory /var/www/wp/current>
        AllowOverride None
        Require all granted
        Options -Indexes +FollowSymLinks
        # WordPress rewrite rules
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
    </Directory>
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost"
    </FilesMatch>
    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresByType image/jpg "access plus 1 year"
        ExpiresByType image/jpeg "access plus 1 year"
        ExpiresByType image/gif "access plus 1 year"
        ExpiresByType image/png "access plus 1 year"
        ExpiresByType text/css "access plus 1 month"
        ExpiresByType application/javascript "access plus 1 month"
    </IfModule>
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/css application/json application/javascript
        DeflateCompressionLevel 6
    </IfModule>
    ErrorLog ${APACHE_LOG_DIR}/wp-error.log
    CustomLog ${APACHE_LOG_DIR}/wp-access.log combined
</VirtualHost>

מה כלול בעבודה

  • ביקורת על תצורת Apache הנוכחית.
  • הגדרת VirtualHost, SSL (Let's Encrypt), HSTS.
  • אופטימיזציה של MPM event, gzip, קישוריות מטמון.
  • .htaccess מותאם ל-CMS שלך (Laravel, WordPress, Drupal).
  • הטמעת הגבלת קצב וכותרות אבטחה.
  • בדיקת עומס (ab, siege) ומסירת תיעוד.
  • הכשרת הצוות שלך בניהול תצורה ותמיכה לאחר פריסה.

אופטימיזציה של MPM וקישוריות מטמון לפרויקטים בעומס גבוה

השלב הראשון הוא בחירת MPM. עבור אתרי PHP דינמיים, השתמשו ב-mpm_event. דוגמת אופטימיזציה:

<IfModule mpm_event_module>
  StartServers 2
  MinSpareThreads 25
  MaxSpareThreads 75
  ThreadLimit 64
  ThreadsPerChild 25
  MaxRequestWorkers 150
  MaxConnectionsPerChild 0
</IfModule>

לאחר מכן הפעילו דחיסה וקישוריות מטמון:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/json application/javascript
    DeflateCompressionLevel 6
</IfModule>
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
</IfModule>

טעות נפוצה היא שימוש ב-mod_php במקום PHP-FPM. הראשון צורך 40% יותר זיכרון בעומס שיא. מעבר ל-PHP-FPM מפחית TTFB ב-15% ומכפיל את התפוקה.

למה להשתמש ב-PHP-FPM עם Apache?

PHP-FPM דרך Unix socket מפחית זמן השהיה ב-20% על localhost בהשוואה ל-TCP. יתר על כן, mod_php צורך 40% יותר זיכרון בעומסי שיא מכיוון שכל תהליך Apache נושא את המפרש. PHP-FPM מאפשר ניהול גמיש של pools ותצורת php.ini נפרדת.

כיצד Apache שונה מ-Nginx ומתי לבחור בו

קריטריון Apache Nginx
עיבוד דינמי mod_php (מובנה) PHP-FPM (חיצוני)
.htaccess נתמך לכל תיקייה לא נתמך
זיכרון לכל חיבור גבוה יותר (תהליך לכל בקשה) נמוך יותר (מונע אירועים)
תוכן סטטי טוב עם mod_cache מצוין מחוץ לקופסה
גמישות תצורה מודולרי, הרבה הוראות פשוט יותר, פחות אפשרויות

Apache עדיף על Nginx בשני מקרים: כאשר .htaccess קריטי (אירוח משותף) או כאשר משתמשים במודולים כמו mod_ldap, mod_authnz_ldap. אחרת, Nginx נותן 30% יותר RPS על תוכן סטטי.

השוואת מודולי MPM של Apache

פרמטר mpm_prefork mpm_worker mpm_event
סוג חוט אחד לכל בקשה מספר חוטים לכל תהליך חוטים + לולאת אירועים
זיכרון גבוה (תהליך 1 = בקשה 1) בינוני נמוך
תאימות mod_php, אפליקציות ישנות PHP-FPM, Python PHP-FPM, Python, Node
בעומס ממצה זיכרון במהירות טוב יותר מ-prefork אופטימלי לעומסים גבוהים

תהליך עבודה לתצורת Apache

  1. ניתוח: לימוד תצורה נוכחית, עומס, CMS.
  2. עיצוב: בחירת MPM, מודולים, פרמטרי קישוריות מטמון.
  3. יישום: הגדרת VirtualHost, SSL, .htaccess, הגבלת קצב.
  4. בדיקה: בדיקת LCP, CLS, TTFB דרך Lighthouse, בדיקת עומס.
  5. פריסה: החלת תצורה, ניטור לוגים, מסירת תיעוד.

טעויות נפוצות שאנו נמנעים מהן:

  • חוסר <VirtualHost *:443> ServerName example.com DocumentRoot /var/www/myapp/current/public SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem Protocols h2 http/1.1 Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" Header always set X-Frame-Options "DENY" <Directory /var/www/myapp/current/public> AllowOverride All Require all granted Options -Indexes </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost" </FilesMatch> <FilesMatch "\.(css|js|jpg|png|gif|ico|svg|woff2)$"> Header set Cache-Control "public, max-age=31536000, immutable" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/myapp-error.log CustomLog ${APACHE_LOG_DIR}/myapp-access.log combined </VirtualHost> .
  • הרשאות DocumentRoot שגויות (צריך להיות 755, לא 777).
  • שימוש ב-mod_php במקום PHP-FPM — 40% יותר צריכת זיכרון.

לוחות זמנים משוערים

הגדרת Apache בסיסית עם PHP-FPM אורכת מיום אחד. מחזור מלא עם אופטימיזציה, אבטחה ובדיקת עומס — עד 3 ימים. העלות מחושבת בנפרד. הזמינו ביקורת תצורה — אנו נעריך את הפרויקט שלכם ונציע פתרון מוכן לשימוש. קבלו תצורת Apache העומדת בשיטות העבודה המומלצות עם פעילות יציבה מובטחת בעומס שיא. צרו קשר לייעוץ על הפרויקט שלכם.