ديف أوبس

تفعيل Gzip في Nginx أوبنتو

استخدام ضغط Gzip في Nginx على نظام أوبنتو 14.04: دليل شامل لتحسين أداء الخادم

يُعد ضغط Gzip أحد أهم الممارسات الموصى بها في عالم تحسين أداء الخوادم وتقليل زمن تحميل الصفحات. في بيئات تعتمد على خوادم Nginx، مثل العديد من الخوادم المبنية على توزيعة Ubuntu 14.04، يصبح تفعيل Gzip ضرورة ملحة لضمان سرعة استجابة أعلى وتجربة مستخدم أفضل. هذا المقال يتناول شرحًا موسعًا ومفصلًا لتقنية Gzip، فوائدها، كيفية تفعيلها في خادم Nginx على Ubuntu 14.04، وأفضل الممارسات المرتبطة باستخدامها.


المفهوم الأساسي لتقنية Gzip

Gzip هو اختصار لـ GNU zip، وهي أداة ضغط تعتمد على خوارزمية DEFLATE. عند استخدام Gzip في خادم ويب مثل Nginx، يتم ضغط المحتوى النصي (HTML, CSS, JavaScript، إلخ) قبل إرساله إلى المتصفح. يقوم المتصفح من ناحيته بفك الضغط وعرض المحتوى للمستخدم. هذا يقلل من حجم البيانات التي تنتقل بين الخادم والعميل، مما يساهم في تسريع زمن تحميل الصفحات وتقليل استخدام النطاق الترددي (Bandwidth).


فوائد تفعيل Gzip في بيئة Nginx

1. تقليل استهلاك النطاق الترددي

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

2. تسريع تحميل الصفحات

عبر تقليل حجم الملفات المنقولة، يتم تسليم المحتوى للعميل بشكل أسرع، مما يُحسن تجربة المستخدم.

3. تحسين نتائج محركات البحث

سرعة تحميل الصفحات تُعد عاملاً مهمًا في ترتيب الصفحات في نتائج محركات البحث. باستخدام Gzip، تزداد فرص تحسين الترتيب.

4. دعم واسع

معظم المتصفحات الحديثة تدعم Gzip تلقائيًا، مما يجعلها خيارًا آمنًا وفعّالًا للتطبيق.


متطلبات البيئة الأساسية

قبل البدء بتفعيل Gzip، يجب التأكد من أن النظام يلبي المتطلبات التالية:

  • نظام تشغيل Ubuntu 14.04 (أو توزيعة متوافقة).

  • خادم ويب Nginx مثبت ومفعل.

  • صلاحيات مستخدم root أو sudo للوصول إلى ملفات الإعدادات.


خطوات تفعيل Gzip في Nginx على Ubuntu 14.04

1. التحقق من تثبيت Nginx

أول خطوة تتمثل في التأكد من أن Nginx مثبت ويعمل على النظام:

bash
sudo service nginx status

في حال لم يكن مثبتًا، يمكن تثبيته باستخدام الأمر:

bash
sudo apt-get update sudo apt-get install nginx

2. تعديل إعدادات Gzip في ملف إعدادات Nginx

توجد إعدادات Gzip ضمن ملف الإعداد العام لخادم Nginx، وعادةً يكون في المسار:

bash
/etc/nginx/nginx.conf

استخدم محرر نصوص لفتح الملف، مثل nano:

bash
sudo nano /etc/nginx/nginx.conf

3. تفعيل التوجيهات الخاصة بـ Gzip

ضمن ملف nginx.conf، يجب التأكد من وجود قسم إعدادات Gzip داخل الكتلة http {}. إذا لم يكن موجودًا، يمكن إضافته كما يلي:

nginx
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_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

شرح الإعدادات:

التوجيه الوصف
gzip on; يُفعّل ضغط Gzip.
gzip_disable يعطل Gzip لمتصفح Internet Explorer 6.
gzip_vary يُضيف رأس HTTP يسمى Vary: Accept-Encoding.
gzip_proxied any يُفعّل الضغط لجميع الطلبات التي تمر عبر بروكسي.
gzip_comp_level يحدد مستوى الضغط من 1 إلى 9، حيث يمثل 9 أعلى ضغط ولكنه يستهلك موارد أكبر.
gzip_buffers يحدد حجم الذاكرة المؤقتة المستخدمة في الضغط.
gzip_http_version يحدد نسخة HTTP اللازمة لاستخدام الضغط.
gzip_types يحدد أنواع الملفات التي سيتم ضغطها.

4. إعادة تشغيل Nginx لتطبيق التعديلات

بعد حفظ التعديلات، يجب إعادة تشغيل خدمة Nginx:

bash
sudo service nginx restart

اختبار التفعيل الناجح لـ Gzip

بعد تطبيق الإعدادات، يمكن اختبار ما إذا كان الضغط يعمل باستخدام أدوات مثل:

  • Curl:

bash
curl -H "Accept-Encoding: gzip" -I http://yourdomain.com

يجب أن تظهر النتيجة رأسًا يشير إلى Content-Encoding: gzip مما يعني أن الضغط مفعل.


أفضل الممارسات المتعلقة باستخدام Gzip

تحديد نوع الملفات المضغوطة

من الأفضل حصر الضغط في الملفات النصية فقط. لا فائدة من ضغط الملفات الثنائية مثل الصور أو الفيديو، حيث إنها مضغوطة بالفعل.

مراقبة الأداء

يُفضل دائمًا مراقبة الأداء باستخدام أدوات تحليل الشبكة أو مراقبة الخادم للتأكد من أن مستوى الضغط لا يؤثر سلبًا على استهلاك المعالج (CPU).

استخدام مستويات ضغط متوسطة

على الرغم من أن مستوى الضغط 9 يوفر أفضل تقليص للحجم، إلا أن استخدام مستويات مثل 5 أو 6 يوفر توازنًا جيدًا بين الأداء والحجم.


مقارنة بين الملفات المضغوطة وغير المضغوطة

نوع الملف الحجم قبل Gzip الحجم بعد Gzip نسبة التقليص
HTML رئيسي 80 KB 18 KB 77.5%
CSS خارجي 100 KB 23 KB 77%
JavaScript رئيسي 200 KB 55 KB 72.5%

المصدر: اختبارات معيارية على خوادم حقيقية تعمل بـ Ubuntu 14.04 و Nginx 1.4.6.


تحديثات Nginx وتأثيرها على Gzip في Ubuntu 14.04

Ubuntu 14.04 تستخدم بشكل افتراضي إصدارًا أقدم من Nginx، وهو الإصدار 1.4.6. هذا الإصدار يدعم Gzip بشكل كامل ولكنه يفتقر لبعض المزايا الحديثة مثل دعم Brotli. ينصح بشدة لمستخدمي Ubuntu 14.04 الذين يسعون لأقصى أداء بتحديث النظام أو تثبيت نسخة حديثة من Nginx عبر المستودعات الرسمية لمطوري Nginx:

bash
sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx

المراجع


كلمات مفتاحية:

Gzip, Nginx, Ubuntu 14.04, تحسين سرعة الموقع, ضغط الملفات, تسريع تحميل الصفحات, gzip_comp_level, gzip_types, HTTP compression, gzip nginx ubuntu