تحسين أداء Apache2

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

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

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

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

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

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

apache2ctl -M

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

a2dismod *название модуля*

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

a2enmod *название модуля*

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

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

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

  • PHP وRuby وPerl ووحدات أخرى لمختلف لغات البرمجة النصية
  • SSL
  • كتابة
  • CGI

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

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

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

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

ولكن لتحسين الأداء، أوصي باستخدام 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 سيؤدي أيضًا إلى تقليل كمية ذاكرة الوصول العشوائي (RAM) المستخدمة بواسطة عملية apache2 وتسريع معالجة نصوص PHP النصية قليلاً.

3. الخلاصة

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

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

المصدر: www.habr.com

إضافة تعليق