apache2 ish faoliyatini optimallashtirish

Ko'p odamlar o'zlarining veb-serverlari sifatida apache2 dan foydalanadilar. Biroq, uning ish faoliyatini optimallashtirish haqida kam odam o'ylaydi, bu saytning sahifa yuklash tezligiga, skriptlarni qayta ishlash tezligiga (xususan, php), shuningdek, protsessor yukining ortishi va foydalanilgan RAM miqdorining oshishiga bevosita ta'sir qiladi.

Shunday qilib, quyidagi qo'llanma yangi (va nafaqat) foydalanuvchilarga yordam berishi kerak.
Quyidagi barcha misollar Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3 da ishlatilgan.

Shunday qilib, boshlaylik.

1. Foydalanilmayotgan modullarni o'chirish

Birinchi usul siz foydalanmayotgan modullarni oddiygina o'chirib qo'yishdir:

Hozirda foydalanilayotgan modullar ro'yxatini buyruq bilan ko'rish mumkin:

apache2ctl -M

Modulni o'chirish uchun quyidagi buyruqdan foydalaning:

a2dismod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля*

Shunga ko'ra, modulni yoqish uchun buyruq ishlatiladi:

a2enmod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля*

Iltimos, foydalanayotganda unutmang a2dismod, modul nomi modul so'zining o'zisiz yozilishi kerak.

Misol uchun, agar siz buyruq chiqishida bo'lsangiz apache2ctl -M ko'rgan proksi_modul, keyin uni o'chirish uchun buyruqni ishlatishingiz kerak - a2dismod proksi-server

Tizimni eng ko'p yuklaydigan modullar (shaxsiy tajribadan) quyidagilardir:

  • Turli skript tillari uchun PHP, Ruby, Perl va boshqa modullar
  • SSL
  • Qayta yozing
  • CGI

Shunday qilib, sizga ushbu modullar kerak bo'lmagan hollarda, men ushbu modullarni o'chirishni tavsiya qilaman.

Bundan tashqari, har qanday modulni o'chirib qo'ygandan so'ng, men - buyrug'idan foydalanishni tavsiya qilaman apache2ctlconfigtest, bu foydalanilgan saytlarning konfiguratsiyasini tekshiradi va agar ular uchun o'chirilgan modullardan biri kerak bo'lsa, u xato beradi.

2. MPM(Multi-Processing Module) ni o'zgartiring va php-fpm dan foydalaning.

Odatiy bo'lib, o'rnatishdan so'ng, apache2 MPM Prefork (1 ulanish uchun 1 ta ip) dan foydalanadi, bu ish faoliyatini sezilarli darajada kamaytiradi, lekin ayni paytda barqarorlik va xavfsizlikni yaxshilaydi.

Lekin ishlashni optimallashtirish uchun MPM Worker-dan foydalanishni tavsiya etaman, bu sizga bir vaqtning o'zida bir nechta ulanishdan foydalanish imkonini beradi.

Uni yoqish uchun quyidagi buyruqlardan foydalaning:

a2dismod mpm_prefork  //ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ prefork
a2dismod php7.3  //ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ php, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависит ΠΎΡ‚ prefork
a2enmod mpm_worker  //Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ worker

Biroq, Worker-dan foydalanganda siz muammoga duch kelishingiz mumkin, chunki php7.3 moduli Prefork moduliga bog'liq.

Ushbu muammoni hal qilish uchun php skriptlarini qayta ishlash uchun ishlatiladigan php7.3-fpm modulini o'rnating:

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  //Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ для Π½Π΅Π³ΠΎ

Shuni ta'kidlash kerakki, php-fpm dan foydalanish apache2 jarayoni tomonidan ishlatiladigan operativ xotira hajmini ham kamaytiradi va PHP skriptlarini qayta ishlashni biroz tezlashtiradi.

3. Xulosa

Shunday qilib, bunday oddiy harakatlar bilan biz ishlashni optimallashtirishga va mashinadagi yukni kamaytirishga muvaffaq bo'ldik (bu holda, RPI3).

Albatta, siqishni yoqish (bu haqiqatan ham foydali, lekin ularning aksariyati sukut bo'yicha allaqachon yoqilgan), MPM parametrlarini (konfiguratsiya fayllari) o'zgartirish, HostnameLookups-ni o'chirish va hokazo kabi yuzlab boshqa optimallashtirish variantlari mavjud. ushbu maqolada men eng ko'p yordam bergan fikrlarni aks ettirishga harakat qildim va umid qilamanki, boshqalarga yordam beradi.

Manba: www.habr.com

a Izoh qo'shish