Apache2 کارکردگی کی اصلاح

بہت سے لوگ apache2 کو بطور ویب سرور استعمال کرتے ہیں۔ تاہم، بہت کم لوگ اس کی کارکردگی کو بہتر بنانے کے بارے میں سوچتے ہیں، جو براہ راست متناسب طور پر سائٹ کے صفحات کی لوڈنگ کی رفتار، پروسیسنگ اسکرپٹس کی رفتار (خاص طور پر php)، نیز CPU لوڈ میں اضافہ اور استعمال شدہ RAM کی مقدار میں اضافہ پر اثر انداز ہوتا ہے۔

اس طرح، درج ذیل دستی کو ابتدائی (اور نہ صرف) صارفین کی مدد کرنی چاہیے۔
نیچے دی گئی تمام مثالیں Raspberry PI 3، Debian 9، Apache 2.4.38، PHP 7.3 پر استعمال کی گئیں۔

تو، شروع ہو چکا ہے.

1. غیر استعمال شدہ ماڈیولز کو غیر فعال کرنا

پہلا طریقہ صرف ان ماڈیولز کو غیر فعال کرنا ہے جو آپ استعمال نہیں کرتے ہیں:

موجودہ استعمال شدہ ماڈیولز کی فہرست کو کمانڈ کے ساتھ دیکھا جا سکتا ہے:

apache2ctl -M

ماڈیول کو غیر فعال کرنے کے لیے، کمانڈ استعمال کریں:

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

اس کے مطابق، ماڈیول کو فعال کرنے کے لیے، کمانڈ استعمال کریں:

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

براہ کرم نوٹ کریں کہ استعمال کرتے وقت a2dismod، ماڈیول کا نام لفظ ماڈیول کے بغیر لکھا جانا چاہیے۔

مثال کے طور پر، اگر آپ کمانڈ کے آؤٹ پٹ میں ہیں۔ apache2ctl -M دیکھا proxy_module، پھر اسے غیر فعال کرنے کے لیے آپ کو کمانڈ استعمال کرنے کی ضرورت ہے۔ a2dismod پراکسی

وہ ماڈیولز جو سسٹم کو سب سے زیادہ لوڈ کرتے ہیں (ذاتی تجربے سے) یہ ہیں:

  • مختلف اسکرپٹنگ زبانوں کے لیے پی ایچ پی، روبی، پرل اور دیگر ماڈیولز
  • SSL
  • ریفریجویٹ
  • CGI

لہذا ایسے معاملات میں جہاں آپ کو ان ماڈیولز کی ضرورت نہیں ہے، میں ان ماڈیولز کو غیر فعال کرنے کی تجویز کرتا ہوں۔

اس کے علاوہ، کسی بھی ماڈیول کو غیر فعال کرنے کے بعد، میں کمانڈ استعمال کرنے کی سفارش کرتا ہوں - apache2ctl کنفٹیسٹ، جو استعمال شدہ سائٹس کی کنفیگریشن کو چیک کرے گا اور اگر ان کے لیے کوئی غیر فعال ماڈیول ضروری تھا، تو یہ ایک خرابی پیدا کرے گا۔

2. MPM (ملٹی پروسیسنگ ماڈیول) کو تبدیل کرنا اور php-fpm استعمال کرنا

پہلے سے طے شدہ طور پر، انسٹالیشن کے بعد، apache2 MPM Prefork (1 دھاگہ فی 1 کنکشن) استعمال کرتا ہے، جو کارکردگی کو نمایاں طور پر کم کرتا ہے، لیکن ساتھ ہی ساتھ استحکام اور سلامتی کو بھی بہتر بناتا ہے۔

لیکن کارکردگی کو بہتر بنانے کے لیے، میں MPM ورکر استعمال کرنے کی تجویز کرتا ہوں، جو آپ کو فی کنکشن ایک سے زیادہ تھریڈز استعمال کرنے کی اجازت دیتا ہے۔

اسے فعال کرنے کے لیے ہم درج ذیل کمانڈز استعمال کرتے ہیں۔

a2dismod mpm_prefork  //Отключаем prefork
a2dismod php7.3  //Отключаем модуль php, который зависит от prefork
a2enmod mpm_worker  //Включаем worker

تاہم، ورکر کا استعمال کرتے وقت آپ کو ایک پریشانی کا سامنا کرنا پڑ سکتا ہے کیونکہ... php7.3 ماڈیول پریفورک ماڈیول پر منحصر ہے۔

اس مسئلے کو حل کرنے کے لیے، آئیے php7.3-fpm ماڈیول انسٹال کریں، جو پی ایچ پی اسکرپٹ کو چلانے کے لیے استعمال کیا جائے گا:

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 کے عمل میں استعمال ہونے والی RAM کی مقدار بھی کم ہو جائے گی اور PHP اسکرپٹس کی پروسیسنگ میں قدرے تیزی آئے گی۔

3. نتیجہ

اس طرح، اس طرح کے آسان اقدامات کے ساتھ ہم کارکردگی کو بہتر بنانے اور مشین پر بوجھ کو کم کرنے کے قابل تھے (اس صورت میں RPI3)۔

بلاشبہ، اصلاح کے دیگر سینکڑوں آپشنز ہیں، جیسے کمپریشن کو فعال کرنا (جو واقعی مفید ہے، لیکن زیادہ تر پہلے سے ہی ڈیفالٹ کے ذریعے فعال ہیں)، MPM سیٹنگز (کنفیگریشن فائلز) کو تبدیل کرنا، HostnameLookups کو غیر فعال کرنا وغیرہ، لیکن اس مضمون میں میں نے کوشش کی عکاسی کریں یہ وہ نکات ہیں جنہوں نے میری سب سے زیادہ مدد کی، اور مجھے امید ہے کہ دوسروں کی مدد کریں گے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں