אופטימיזציית MODX: מאבחון ועד ייצור

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

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

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
אופטימיזציית MODX: מאבחון ועד ייצור
בינוני
~2-3 ימים

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

שאלות נפוצות

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

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

האצת MODX: מאבחון לייצור

אנו מתקינים ומבצעים אופטימיזציה ל-MODX Revolution כדי להשיג ביצועים מהירים במיוחד. עם ניסיון של 10+ שנים ו-100+ פרויקטים מוצלחים של האצת MODX, הצוות שלנו מוריד את זמני הטעינה ל-200 אלפיות השנייה ומבטיח מעבר של Core Web Vitals. חיסכון במשאבי אירוח לאחר אופטימיזציה מגיע בדרך כלל ל-30–50%, וחוסך ללקוחות עד 500 דולר בחודש בעלויות שרת. קבלו ייעוץ על אופטימיזציה של MODX—צרו קשר לבדיקה.

כיצד לזהות צווארי בקבוק ב-MODX

השלב הראשון הוא להבין מה מאט. MODX מתעד שאילתות איטיות אם תפעילו זאת ב-[[*]]:

define('MODX_CONFIG_KEY', 'config'); // в System Settings: // log_level = 4 (DEBUG) // log_target = FILE 

כלי מדויק יותר הוא [[+]] + Blackfire או רק stat() ב-MySQL/MariaDB עבור שאילתות ש-MODX מייצר במהלך רינדור הדף. בעיות טיפוסיות:

  • core/config/config.inc.php קורא את כל השדות, כולל define('MODX_CONFIG_KEY', 'config'); // в System Settings: // log_level = 4 (DEBUG) // log_target = FILE , גם כאשר נדרש רק xDebug
  • EXPLAIN ללא modResource מריץ content על כל המשאבים הצאצאים
  • סניפטים ללא pagetitle מתבצעים בכל בקשה

מהנדסים מנוסים בודקים גם הגדרות PHP-FPM ו-OPcache—לעיתים קרובות צוואר הבקבוק אינו MODX עצמו אלא תצורת הסביבה. השקעה באופטימיזציה בדרך כלל מחזירה את עצמה תוך 2–3 חודשים על ידי הפחתת עומס השרת.

שמירה במטמון ברמת MODX

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

הגדרות מערכת אופטימליות:

פרמטר ערך מומלץ
limit SELECT * (ברירת מחדל) או Redis
&cache=1 3600–86400
core/cache/ 1
cache_resource_handler 1
xPDOFileCache 1

למה Redis עדיף על מטמון קבצים

עבור מטמון Redis, התקינו את החבילה Redis (modmore או דומה) והוסיפו ל-cache_default_lifetime:

$config_options = [
    'cache_path' => MODX_CORE_PATH . 'cache/',
    'cache_default_handler' => 'xPDORedisCache',
    'cache_xpdo_handler' => 'xPDORedisCache',
    'redis_host' => '127.0.0.1',
    'redis_port' => 6379,
    'redis_db' => 0,
];

לאחר המעבר ל-Redis, TTFB יורד ב-30–50% באתרים עם תעבורה גבוהה מכיוון שפעולות cache_context_settings על קבצי מטמון בדיסק נעלמות. השוואה:

סוג מטמון TTFB ממוצע עומס דיסק
מטמון קבצים 800–1200 אלפיות השנייה גבוה
Redis 200–400 אלפיות השנייה אין

לפי Redis, אחסון נתונים בזיכרון מאיץ משמעותית פעולות קריאה. בפועל, זה מקצץ בעלויות משאבי שרת ב-30–40%.

אופטימיזציה של סניפטים ו-pdoTools

קריאות לא שמורות במטמון compress_js הן הגורם העיקרי לאיטיות. ביקורת על ידי חיפוש בתבניות ובצ'אנקים: compress_css בתיקיית האלמנטים. כללים:

  • אם סניפט אינו תלוי בסשן/עגלה/משתמש—הפכו אותו לשמיר במטמון: core/config/config.inc.php
  • $config_options = [ 'cache_path' => MODX_CORE_PATH . 'cache/', 'cache_default_handler' => 'xPDORedisCache', 'cache_xpdo_handler' => 'xPDORedisCache', 'redis_host' => '127.0.0.1', 'redis_port' => 6379, 'redis_db' => 0, ]; , pdoTools נשמרים במטמון דרך הפרמטר המובנה stat()
  • [[!SnippetName]] ו-grep -r '\[\[!'—תמיד לא שמורים במטמון, העבירו לצ'אנקים נפרדים

pdoTools במקום [[SnippetName? &cache="1" &cacheExpires="3600"]] הוא קריטי לאתרים עם קטלוגים גדולים. pdoTools משתמש ב-JOIN במקום שאילתות מרובות, מה שהופך אותו למהיר פי 3 מ-getResources על מערכי נתונים גדולים. דוגמת קריאה: getResources15&cache2FormIt20LoginpublishedongetResourcesDESC[[pdoResources? &parents=1 &depth=1800 &limit=

תצורת OPcache לדוגמה

לביצועי PHP-OPcache מקסימליים, השתמשו בתצורה זו:

; /etc/php/8.1/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.fast_shutdown=1
; /etc/php/8.1/fpm/pool.d/modx.conf
[modx]
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 8
pm.max_requests = 500
request_terminate_timeout = 30s

&sortby= מונע דליפות זיכרון בסניפטים ארוכי טווח.

כיצד להגדיר Redis עבור MODX: שלב אחר שלב

  1. התקינו את חבילת Redis דרך מנהל החבילות של MODX (לדוגמה, Redis מ-modmore).
  2. שנו את &sortdir= כפי שמוצג לעיל.
  3. בהגדרות המערכת של MODX, הגדירו &cache= ל- &cacheExpires=.
  4. נקו את המטמון הקיים דרך לוח הניהול.
  5. ודאו ששרת Redis פועל ונגיש ב-]].
  6. בדקו את מהירות טעינת הדף—TTFB בדרך כלל יורד פי 2–3.

תצורת Nginx עבור MODX

server {
    location ~* \.(js|css|png|jpg|webp|woff2|ico|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
        access_log off;
    }
    location ^~ /core/ {
        deny all;
    }
    gzip on;
    gzip_types text/plain text/css application/json application/javascript image/svg+xml;
    gzip_min_length 1024;
    gzip_comp_level 5;
}

אינדקסים במסד הנתונים

MODX אינו מוסיף את כל האינדקסים הנדרשים אוטומטית. עבור אתרים עם 10,000+ משאבים, אנו מוסיפים:

ALTER TABLE modx_site_content
  ADD INDEX idx_parent_published (parent, published),
  ADD INDEX idx_context_published (context_key, published),
  ADD INDEX idx_publishedon (publishedon);

לאחר הוספת אינדקסים, ; /etc/php/8.1/fpm/conf.d/10-opcache.ini opcache.enable=1 opcache.memory_consumption=256 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=10000 opcache.validate_timestamps=0 opcache.revalidate_freq=0 opcache.fast_shutdown=1 ; /etc/php/8.1/fpm/pool.d/modx.conf [modx] pm = dynamic pm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 8 pm.max_requests = 500 request_terminate_timeout = 30s על שאילתת getResources טיפוסית מראה pm.max_requests = 500 במקום config.inc.php. זה מפחית את עומס השרת וחוסך עד 40% במשאבי אירוח, ומוריד עלויות תשתית.

מה כלול באופטימיזציית MODX סוהר?

אופטימיזציה בסיסית כוללת: ביקורת תצורה (לוגים, פרופילינג, EXPLAIN), הגדרת מטמון Redis והעברת מטמון קבצים, כוונון PHP-FPM ו-OPcache, אופטימיזציית Nginx, הוספת אינדקסים נדרשים ב-MySQL, דחיסת CSS/JS והגדרת שמירה במטמון דפדפן, מדידת Core Web Vitals לפני/אחרי, ותיעוד שינויים. למקרים מורכבים—ריפקטורינג של סניפטים לא שמורים במטמון לשמורים. אנו מבטיחים שיפור של לפחות 50% ב-TTFB. התוצאות מאומתות עם מדידות Core Web Vitals.

לוחות זמנים

אופטימיזציה בסיסית (מטמון, PHP-FPM, nginx, אינדקסים): 2–3 ימים. ריפקטורינג של סניפטים לא שמורים במטמון לשמורים + ביקורת תבניות: 3–5 ימים בהתאם למספר האלמנטים. העברת מטמון Redis עם בדיקות: יום נוסף אחד. כל שלב נמדד.

הזמינו ביקורת ביצועי MODX

השאירו בקשה—ננתח את האתר שלכם ונציע תוכנית אופטימיזציה. אנו מבטיחים תוצאות: Core Web Vitals מאומתים לפני ואחרי. צרו קשר כדי להתחיל. אופטימיזציה מפחיתה עלויות תשתית ומאיצה את האתר, ומשפיעה לחיוב על שיעורי ההמרה.