تحسين الأداء apache2

يستخدم الكثيرون apache2 كخادم ويب. ومع ذلك ، فإن قلة من الناس تفكر في تحسين أدائها ، مما يؤثر بشكل مباشر على سرعة تحميل الصفحات على الموقع ، وسرعة معالجة النصوص (خاصة php) ، وكذلك الزيادة في حمل وحدة المعالجة المركزية وزيادة مقدار ذاكرة الوصول العشوائي المستخدمة.

وبالتالي ، ينبغي أن يساعد الدليل التالي المستخدمين المبتدئين (وليس فقط).
تم استخدام جميع الأمثلة أدناه في Raspberry PI 3 و Debian 9 و Apache 2.4.38 و PHP 7.3.

لذلك دعونا نبدأ.

1. تعطيل الوحدات غير المستخدمة


الطريقة الأولى هي تعطيل عادي للوحدات النمطية التي لا تستخدمها:

يمكن عرض قائمة الوحدات المستخدمة حاليًا باستخدام الأمر:

apache2ctl -M 

لتعطيل الوحدة ، استخدم الأمر:

 a2dismod * * 

وفقًا لذلك ، لتمكين الوحدة ، استخدم الأمر:

 a2enmod * * 

يرجى ملاحظة أنه عند استخدام a2dismod ، يجب كتابة اسم الوحدة بدون كلمة الوحدة النمطية نفسها.

على سبيل المثال ، إذا رأيت proxy_module في إخراج الأمر apache2ctl -M ، ثم لتعطيله ، استخدم الأمر - a2dismod proxy

الوحدات الأكثر تحميلاً للنظام (من التجربة الشخصية) هي:

  • PHP ، روبي ، بيرل وغيرها من الوحدات النمطية للغات البرمجة النصية المختلفة
  • SSL
  • إعادة كتابة
  • CGI

لذلك في تلك الحالات التي لا تحتاج فيها إلى هذه الوحدات ، أوصي بتعطيل هذه الوحدات.

وأيضًا ، بعد تعطيل وحدة ، أوصي باستخدام command - apache2ctl configtest ، والذي سيتحقق من تكوين المواقع المستخدمة وإذا كان أي من الوحدات المعطلة ضروريًا لها ، فسيظهر خطأ.

2. قم بتغيير MPM (وحدة المعالجة المتعددة) واستخدم php-fpm


بشكل افتراضي ، بعد التثبيت ، يستخدم apache2 MPM Prefork (1 مؤشر ترابط لكل اتصال واحد) ، مما يقلل الأداء بشكل كبير ، ولكن في نفس الوقت يحسن الاستقرار والأمان.

ولكن لتحسين الأداء ، أوصي باستخدام MPM Worker ، والذي يسمح لك باستخدام عدة مؤشرات ترابط في اتصال واحد دفعة واحدة.

لتمكينه ، استخدم الأوامر التالية:

 a2dismod mpm_prefork // prefork a2dismod php7.3 //  php,    prefork a2enmod mpm_worker // worker 

ومع ذلك ، عند استخدام Worker ، قد تواجه مشكلة بسبب وحدة php7.3 تعتمد على وحدة Prefork.

لحل هذه المشكلة ، قم بتثبيت الوحدة النمطية php7.3-fpm ، والتي سيتم استخدامها لحل البرامج النصية php:

 apt-get update && apt-get install php7.3-fpm // systemctl enable php7.3-fpm && systemctl start php7.3-fpm //     a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf //      

تجدر الإشارة إلى أن استخدام php-fpm سيؤدي أيضًا إلى تقليل مقدار ذاكرة الوصول العشوائي المستخدمة في عملية apache2 وسيؤدي إلى تسريع معالجة نصوص php قليلاً.

3. الخاتمة


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

بالطبع ، هناك المئات من خيارات التحسين الأخرى ، مثل تمكين الضغط (وهو أمر مفيد بالفعل ، ولكن بالنسبة للجزء الأكبر يتم تمكينه افتراضيًا بشكل افتراضي) ، وتغيير معلمات MPM (ملفات التكوين) ، وتعطيل HostnameLookups ، وما إلى ذلك ، لكنني حاولت في هذه المقالة التعبير هذه هي النقاط التي ساعدتني أكثر ، وآمل أن يساعدوا الآخرين.

Source: https://habr.com/ru/post/ar444732/


All Articles