شرح وتنصيب mod_pagespeed ل apache2

قبل شهرين أطلقة google أحد المشاريع لتحسين تسريع المواقع التي توجد تحت أباتشي وكان الإضافة وحدة أباتشي بذاته تسمى pagespeed مفتوحة المصدر في إطار مبادرت google في جعل شبكة الأنترنيت أسرع، لكن أحرص هذا ليس إضافة Page speed التي أطلقة من نفس الشركة وأنه ليس نفس المشروع.
الشيء المثير للإهتمام في mod_pagespeed أنه يقوم بتعديلات تلقائية على المواقع الموجودة تحت أباتشي لتحسينها من كل الجوانب التي يتم عملها يدويا وتأخذ وقتا في ذالك،
كنت متردد في عمل هذا الشرح لكن من يدري إذ لم يستعمل يجرب 😉
ليس في جعبتي الكثير من الكتابة لنبدأ

ما نحتاجه

خادم ويب أباتشي 2.2 تم تنصيبه من قبل على منصة تشغيل مدعومة وإتصال ssh أو وصول مباشر
أفكر أنه عليك عمل كأس شاي 🙂

تنصيبه

وحدة page speed موجودة ومتاحة لمنصات التشغيل CentOS/Fedora ، Debian/Ubuntu وأخيرا كما هو متوقع بالطبع أباتشي 2.2
وقبل أن أنسى تمت إستعمال أبونتو لهذه التجارب لكن في المتطلبات لم أذكر منصة التشغيل التي سأشرحها لكن سأحوال شرحها لكل المنصات إذا إستطعت 🙂
نقوم بتحميل الوحدة mod_pagespeed من هنا لمتطلبات التشغيل التي نوجد عليها
# wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_(i386/amd64).(deb/rpm)

تنصيب لأبونتو و ديبيان

# dpkg -i mod-pagespeed-*.deb

أو سينتوس و فدورا

# rpm -i mod-pagespeed-*.rpm

تحرير ملف pagespeed.conf

بمجرد إكتمال تثبيت الوحدة إذا سارت الأمور بشكل جيد فسوف نكون قادرين على تحرير تعديلات Page Speed،
لتحرير ملف وحدة page_speed نستعمل vi أو vim ومسار هذا الملف توجد في فيدورا أعتقد
# vi /etc/httpd/conf.d/pagespeed.conf
وفي أبونتو وديبيان توجد في
# vim /etc/apache2/mods-available/pagespeed.conf
قبل أن نبدأ نقوم بعمل نضرة سريعة هل توجد هذه الملفات و هل يمكن الكتابة فيها من طرف الخادم
ModPagespeedFileCachePath "/var/mod_pagespeed/cache/"
ModPagespeedGeneratedFilePrefix "/var/mod_pagespeed/files/"

وبخصوص هذا الملف فإنه مفعل لكن لا يوجد ما يعمل به لذالك نبدأ بتفعيل أحجام الملفات
ModPagespeedFileCacheSizeKb 102400
ModPagespeedFileCacheCleanIntervalMs 3600000
ModPagespeedLRUCacheKbPerProcess 1024
ModPagespeedLRUCacheByteLimit 16384
ModPagespeedCssInlineMaxBytes 2048
ModPagespeedImgInlineMaxBytes 2048
ModPagespeedJsInlineMaxBytes 2048
ModPagespeedCssOutlineMinBytes 3000
ModPagespeedJsOutlineMinBytes 3000

والأن إلى عمق الوحدة فهذه الوحدة تعمل بإستعمال مرشحات (Filters)،سأشرح أكثر، يوجد العديد من تطبيقات مرشحات في هذه الوحدة وكل واحدة منها يمكن إيقاف عملها أو إستعمالها وكل واحدة منها لها عمل محدد.

إستعمال مرشحات (فيلتير) Page Speed

كل مرشح عليه أن يوجد مشغل أو لا، وهذا سهل

تنشيط مرشح

ModPagespeedEnableFilters filteA, filterB

تعطيل مرشح

ModPagespeedDisableFilters filterA, filterB, filterC
ومن المهم جدا عمل خروج إغاثة 🙂 إذا قمنا بكسر شيئ لأننا من الأن سنبدأ التجارب ومن نوافذ خروج الإغاثة عمل نسخة للملف أو تفعيل أو تعطيل جميع مرشحات الوحدة.
ModPagespeed on
إذا وضعناه “off” فإننا نعطل كل الوحدة بما فيها من مرشحات
وقبل أن أنسى وعند تنشيط أو تعطيل مرشح علينا إعادة تشغيل خادم الويب أباتشي بطبيعة الحال.

مرشحات mod_pagespeed

الأن سيتم شرح بعض أهم المرشحات Page Speed ويمكن تفعيل عملها أو تعطيلها كما سبق التطرق لذالك وأسأخذ تسلسل موقع تجربة Page speed وإضافة يمكن تحميل من هنا

add_instrumentation

يدرج تلقائيا نص صغير لجافاسكريبت في المواقع لتحكم في زمن الإستجابة، ويمكن تتبع بفضله النتائج والإحصائيات وهذه الوحدة يتم تفعيلها مع تفعيل المرشح

extend_cache

يوفر القدرة على تعزيز التخزين المؤقت للمتصفح، يضيف رؤوس http لعمل توقيت أقصى لحياة ملفات الويب وأيضا يقوم بتغيير إسم رأس الملف إذا كان مخزنا

collapse_whitespace

إزالة كافت فواصل الأسطر التي لا تستعمل، وهذا ينقص حجم ملف المرسل للويب

combine_css

كما يدل إسمه، يجمع بين عدة ملفات صفحات الطرز المتراصة ويقوم بوضعها في ملف واحد، وهذا يحقق إنقاص في طلبات الخادم، على سبيل المثال إذا موقعنا يوجد فيه 4 ملفات css يقوم mod_pagespeed بجمع الأربعة وعمل ملف واحد بإسم مركب .

combine_heads

هذا قليل الإستعمال لكن إذا وجد أكثر من heads يقوم بجمعهم في واحد وهذا يسهل على المتصفح عمل خريطة xhtml

move_css_to_head

يقوم بالبحث وتغيير ملفات css إلى head وهذا يحسن سرعة وضهور الموقع وإضافة إلى combine_css فلا يمكن الإستغناء عنه

elide_attributes

لا أنصح بإستعماله يقوم بإزالة أشياء يعتبرها غير ضرورية للحد من حجم ملف الويب،لكن الجيد جيد لكن عند الإزالة يترك الموقع لايلتزم معايير xhtml وإضافة إذا كنت تستعمل مكتبة جافاسكريبت JQuery فإنه يزيل أشياء يتم إحتياجها للعمل بتلك المكتبة.

inline_css و inline_javascript

كلا المرشحان يعملان الشيء نفسه يقومان بنقل الملفات الخارجية لصفحات الطراز المتراص وجافاسكريبت ويقوم بإضافته لملف الويب وهذا يجنب عمل طلب خارجي و بحث dns ، وقبل إضافته عليه البحث عن الحد الأقصى للملف الخارجي قبل نقله عبر PagespeedCssInlineMaxBytes

outline_css و outline_javascript

عكس السابق إذا وجد أكواد تصل حجمها الأقصى لما حدد يقوم بعمل ملف css أو javascript لها وهكذا يريح المتصفح في تصفح عدة ملفات مختلفة، ولتغيير الحد الأقصى ModPagespeedCssOutlineMinBytes و ModPagespeedJsOutlineMinBytes.

remove_quotes

يزيل علامات الإقتباس الغير الضرورية لتوفير المساحة، يضهر جيدا لكن لا أنصح به فهو يرسل معايير الويب إلى السلة

remove_comments

يقوم بإزالة كل التعليقات الموجودة في ملفات html. إنه جيد ويستحسن إستعماله لتوفير نسبة في المحتوى

rewrite_css، rewrite_images و rewrite_javascript

ما يستحسن عمله لكل المواقع ضغط للحد الأقصى ما يتم إحتياجه من هذه الملفات مع الصور دون التقليل من الجودة، وهذا يوفر سرعة في تحميل أكبر.

استنتاج

وحدة Page Speed هو رهان أخر ل google لترويج لمماراسات جيدة لمواقع وجب عليها عملها يدويا أو تلقائيا وهذا يسرع المواقع التي لم توجد فيها هذه الممارسات ويسهل على الخادم الرفع من مقدورته بدون الرفع من مزانية الخدمة.
تحديث
من طرف طلب من الأخ Bashar سأضع الفرق لكن لا يختلف كثيرا كلا التحميلين بإستعمال أو غير إستعماله لأن السيرفير الذي أستعمل تم تحسينه لنصف هذه الإجرءات .
بدون إستعمال

إستعمال

تحياتي….

محمد حنين

الإسم الكامل محمد حنين أحد geek من أمد طويل ، مطور ويب، محب للحرية، مستعمل نضام لينوكس، وأخيرا مجرم باللغة العربية للأسف في وقتها. معلومات أكثر عني أو الإتصال بي Mohammed Hanine

You may also like...

5 تعليقات

  1. يقول Bashar:

    ما فرق السرعه قبل و بعد تنصيبه على سيرفركم؟

    • يقول mohammed:

      مرحبا بك
      الفرق يضهر كثيرا عندما يكون الموقع ضخم لكن تنصيبه على السيرفير وتجربة مدونة من نوع وردبريس النتيجة بعض الثواني
      الصور وضعتها في المدونة على إسم تحديث

  2. يقول Bashar:

    سأجربها بالمستقبل القريب ان شاء الله و ان امكنني اشارككم بالنتائج التي تظهر لي

    شكرا لكم و بالتوفيق 🙂

  3. يقول اسعد:

    شكرا لك اخي على الشرح الوافي

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *