דחיסת Gzip עבור Bitrix: חיסכון בביצועים וברוחב פס

Gzip הוא הדבר הראשון שבודק מבקר PageSpeed לאחר התקנת Bitrix. לעתים קרובות אנו רואים שהוא או מושבת לחלוטין או מוגדר בצורה שגויה. HTML נדחס, אך JS ו-CSS לא, או שרמת הדחיסה מוגדרת למקסימום, מה שגורם לעומס על המעבד ללא תועלת ניכרת. HTML של קטלוג טיפוסי
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
דחיסת Gzip עבור Bitrix: חיסכון בביצועים וברוחב פס
פשוט
~1 יום

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

שאלות נפוצות

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

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1456
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1018
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    879
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1162

Gzip הוא הדבר הראשון שבודק מבקר PageSpeed לאחר התקנת Bitrix. לעיתים קרובות אנו רואים שהוא או מושבת לחלוטין או מוגדר באופן שגוי. HTML נדחס, אך JS ו-CSS לא, או שרמת הדחיסה מוגדרת למקסימום, מה שמעמיס על המעבד ללא תועלת ניכרת. דף קטלוג טיפוסי ב-HTML הוא 80–200 KB; לאחר gzip ברמה 6, הוא יורד ל-15–35 KB. זה חיסכון של 75–80% בתעבורה על כל בקשת HTML שאינה במטמון. עבור חנות עם 10,000 מבקרים יומיים, זה מפחית משמעותית את עומס השרת ומשפר את LCP. סי�נו ליותר מ-500 פרויקטים בהגדרת דחיסה — עם ניסיון של יותר מ-10 שנים.

רוצים להגדיר gzip כראוי? הזמינו בדיקה והתקנה — פרויקט טיפוסי לוקח 2–4 שעות, והעלות מחושבת באופן אישי.

כיצד Gzip משפיע על מהירות הטעינה

דחיסה מפחיתה את כמות הנתונים המועברים. עבור HTML — פי 4–6 קטן יותר, עבור CSS/JS — פי 3–5. לדוגמה, דף קטלוג ללא דחיסה שוקל 180 KB, עם דחיסה — 25 KB. באינטרנט סלולרי, זה חוסך 3–5 שניות מזמן הטעינה. Gzip נתמך על ידי כל הדפדפנים המודרניים, ומנועי החיפוש רואים במהירות גורם דירוג.

השוואה: gzip_static לעומת דחיסה דינמית

דחיסה סטטית מראש (gzip_static) מעמיסה פי 3 פחות על המעבד מאשר דחיסה דינמית, מכיוון שהקבצים נדחסים פעם אחת בזמן הפריסה. דחיסה דינמית מעבדת כל בקשה; ברמה 6, היא מציעה דחיסה מצוינת אך מעמיסה על המעבד. עבור משאבים סטטיים (CSS, JS), gzip_static עדיף. הנה טבלת השוואה:

פרמטר gzip_static Gzip דינמי
עומס על המעבד אין (הגשת קבצים מוכנים מראש) פי 3 ברמה 6
מהירות הגשה מקסימלית קצת איטית יותר
עדכוני קבצים דורש יצירה מחדש של .gz אוטומטי
תמיכה nginx בלבד כל השרתים

יעילות דחיסה לפי סוג תוכן

סוג תוכן גודל ללא דחיסה גודל עם דחיסה (gzip 6) חיסכון
דף קטלוג ב-HTML 180 KB 25 KB 86%
קובץ CSS (bootstrap) 150 KB 35 KB 77%
JavaScript (jquery) 85 KB 20 KB 76%
תגובת JSON API 50 KB 10 KB 80%

למה gzip_static עדיף לפרויקטים בעלי עומס גבוה

בפרויקטים עם מיליוני בקשות לקבצים סטטיים, עומס המעבד מדחיסה דינמית יכול להיות 10–15% מכלל המשאבים. gzip_static מסיר אותו לחלוטין. באחד הפרויקטים שלנו (קטלוג עם מיליון מוצרים), מעבר ל-gzip_static הפחית את עומס המעבד מ-60% ל-35%, וזמן התגובה לקבצים סטטיים ירד ב-200 אלפיות השנייה. קבלו ייעוץ אם אתם רוצים ליישם gzip_static בפרויקט שלכם.

כיצד להגדיר Gzip ב-nginx: מדריך שלב אחר שלב

התקנת Bitrix הסטנדרטית דרך setup.sh מגדירה gzip בסיסי, אך לעיתים קרובות מפספסת סוגי MIME חשובים ואינה מפעילה gzip_vary.

שלב 1: הגדרה בסיסית

הגדרה מלאה בבלוק http או server:

gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 1024; gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss application/rss+xml application/atom+xml image/svg+xml font/ttf font/otf application/vnd.ms-fontobject; 

gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 1024; gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss application/rss+xml application/atom+xml image/svg+xml font/ttf font/otf application/vnd.ms-fontobject; — קריטי בעת שימוש ב-CDN או פרוקסי. מוסיף את הכותרת gzip_vary on כך שמטמונים לא מגישים תוכן דחוס לדפדפנים ללא תמיכה ב-gzip.

gzip_min_length 1024 — אל תדחסו קבצים קטנים מ-1 KB. העלות של כותרות gzip והמעבד אינה מוצדקת עבור תגובות קטנות.

gzip_comp_level 6 — רמות 7–9 נותנות פחות מ-2% דחיסה נוספת בעלות של פי 2–3 במעבד. רמות 1–2 מהירות אך דוחסות גרוע ב-15–20%. לפי בדיקות, רמה 6 מציעה את היחס הטוב ביותר בין דחיסה לביצועים.

שלב 2: הפעלת gzip_static

gzip_static on; — בעת בקשת app.js, nginx מחפש app.js.gz. אם נמצא, הוא מגיש אותו ללא עלות מעבד לדחיסה.

יצירת קבצי .gz בסקריפט הפריסה:

find /var/www/site/public/build -name "*.js" -o -name "*.css" | xargs -P4 -I{} gzip -k -6 {} 

שלב 3: בדיקת דחיסה כפולה

Bitrix יכול לדחוס תגובות דרך PHP (find /var/www/site/public/build -name "*.js" -o -name "*.css" | xargs -P4 -I{} gzip -k -6 {} ). אם גם דחיסת PHP וגם דחיסת nginx מופעלות, הדפדפן מקבל תוכן דחוס פעמיים. בדקו את ob_gzhandler או php.inibitrix/php_interface/dbconn.php צריך להיות Off. בהגדרות Bitrix: "הגדרות → הגדרות מוצר → דחיסת עמודים" צריך להיות מושבת אם nginx מטפל בדחיסה.

מה לבחור: gzip_static או דחיסה דינמית ב-Apache?

בשרתים עם nginx (ההמלצה של Bitrix), ההגדרה פשוטה ויעילה יותר — דחיסה חד-פעמית, דחיסה סטטית מראש. Apache דורש את המודול mod_deflate, שמשתמש ביותר מעבד. באירוח משותף, הבחירה בדרך כלל מוגבלת. בכל מקרה, יש להפעיל gzip ברמת שרת האינטרנט, לא דרך PHP.

הגדרת Apache

עבור שרתי Bitrix על Apache (bitrix-env משתמש ב-nginx כפרונטאנד, אך באירוח משותף לעיתים קרובות Apache טהור):

<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml AddOutputFilterByType DEFLATE text/css application/javascript AddOutputFilterByType DEFLATE application/json application/xml AddOutputFilterByType DEFLATE image/svg+xml font/ttf DeflateCompressionLevel 6 # Не сжимать уже сжатые форматы SetEnvIfNoCase Request_URI \.(?:gif|jpg|jpeg|png|zip|gz|br)$ no-gzip dont-vary Header append Vary Accept-Encoding </IfModule> 

שגיאות הגדרה נפוצות ב-Bitrix

דחיסה כפולה דרך PHP ו-nginx. כבר הזכרנו זאת — השביתו את zlib.output_compression.

חסר <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml AddOutputFilterByType DEFLATE text/css application/javascript AddOutputFilterByType DEFLATE application/json application/xml AddOutputFilterByType DEFLATE image/svg+xml font/ttf DeflateCompressionLevel 6 # Не сжимать уже сжатые форматы SetEnvIfNoCase Request_URI \.(?:gif|jpg|jpeg|png|zip|gz|br)$ no-gzip dont-vary Header append Vary Accept-Encoding </IfModule> — אם האתר נמצא מאחורי מאזן עומסים או CDN, nginx ללא הוראה זו אינו דוחס תגובות לבקשות פרוקסי (קיים כותרת Via).

application/json לא ברשימה. תגובות API של Bitrix (רכיבים שעובדים במצב AJAX) מחזירות JSON. ללא דחיסה, תגובות JSON לקטלוג עם 50 פריטים שוקלות 40–80 KB; עם דחיסה, 8–15 KB.

בדיקת דחיסה

# Проверяем сжатие ответа curl -sI -H "Accept-Encoding: gzip" https://site.ru/ | grep -i content-encoding # Content-Encoding: gzip # Сравниваем размеры curl -s --compressed https://site.ru/ | wc -c curl -s -H "Accept-Encoding: identity" https://site.ru/ | wc -c 

הכלי Check GZIP compression ב-GiftOfSpeed מציג דחיסה עבור כל כתובת URL יחד עם חיסכון בבתים.

מה כלול בשירות הגדרת ה-Gzip שלנו

  • בדיקת תצורת השרת וה-Bitrix הנוכחית.
  • הגדרת Gzip על nginx או Apache עם אימות של כל סוגי MIME.
  • אופטימיזציה של רמת הדחיסה והמטמון.
  • הגדרת gzip_static עבור משאבים סטטיים.
  • בדיקת דחיסה כפולה, התאמת PHP ו-Bitrix.
  • בדיקה דרך PageSpeed, GTmetrix ו-curl.
  • תיעוד השינויים שבוצעו.
  • ייעוץ ותמיכה למשך שבוע לאחר ההגדרה.

אנו מבטיחים תוצאות: שיפור בזמן הטעינה בבדיקות ב-30-400% (תלוי במצב הנוכחי). אם אינכם בטוחים בתצורה שלכם, צרו קשר להערכת פרויקט חינמית. קבלו ייעוץ על הגדרת gzip לפרויקט Bitrix שלכם.