Apache2 performansının optimallaşdırılması

Bir çox insan apache2-dən veb server kimi istifadə edir. Bununla belə, az adam onun işini optimallaşdırmaq barədə düşünür ki, bu da sayt səhifələrinin yüklənmə sürətinə, skriptlərin işlənmə sürətinə (xüsusən php), həmçinin CPU yükünün artmasına və istifadə olunan RAM miqdarının artmasına birbaşa mütənasib təsir göstərir.

Beləliklə, aşağıdakı təlimat yeni başlayanlara (yalnız deyil) istifadəçilərə kömək etməlidir.
Aşağıdakı bütün nümunələr Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3-də istifadə edilmişdir.

Beləliklə, başlayaq.

1. İstifadə edilməmiş modulların söndürülməsi

Birinci üsul istifadə etmədiyiniz modulları sadəcə söndürməkdir:

Hazırda istifadə olunan modulların siyahısına aşağıdakı əmrlə baxmaq olar:

apache2ctl -M

Modulu söndürmək üçün əmrdən istifadə edin:

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

Müvafiq olaraq, modulu aktivləşdirmək üçün əmrdən istifadə edin:

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

İstifadə edərkən nəzərə alın a2dismod, modulun adı modulun özü sözü olmadan yazılmalıdır.

Məsələn, əmrin çıxışında olsanız apache2ctl -M gördüm proxy_modulu, sonra onu söndürmək üçün əmrdən istifadə etməlisiniz - a2dismod proxy

Sistemi ən çox yükləyən modullar (şəxsi təcrübədən) bunlardır:

  • Müxtəlif skript dilləri üçün PHP, Ruby, Perl və digər modullar
  • SSL
  • Yenidən yazmaq
  • CGI

Odur ki, bu modullara ehtiyacınız olmayan hallarda bu modulları söndürməyi məsləhət görürəm.

Ayrıca, hər hansı bir modulu söndürdükdən sonra əmrdən istifadə etməyi məsləhət görürəm - apache2ctl konfiqurasiya sınağı, istifadə olunan saytların konfiqurasiyasını yoxlayacaq və əlil modullardan hər hansı biri onlar üçün lazım idisə, xəta yaradacaq.

2. MPM (Multi-Processing Module) dəyişdirilməsi və php-fpm-dən istifadə

Varsayılan olaraq, quraşdırmadan sonra apache2, performansı əhəmiyyətli dərəcədə azaldan, eyni zamanda sabitliyi və təhlükəsizliyi yaxşılaşdıran MPM Prefork (1 əlaqə üçün 1 ip) istifadə edir.

Ancaq performansı optimallaşdırmaq üçün hər bir əlaqə üçün birdən çox ipdən istifadə etməyə imkan verən MPM Worker-dən istifadə etməyi məsləhət görürəm.

Onu aktivləşdirmək üçün aşağıdakı əmrlərdən istifadə edirik:

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

Bununla belə, Worker istifadə edərkən problemlə qarşılaşa bilərsiniz, çünki... php7.3 modulu Prefork modulundan asılıdır.

Bu problemi həll etmək üçün PHP skriptlərini işə salmaq üçün istifadə olunacaq php7.3-fpm modulunu quraşdıraq:

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  //Включаем модуль и конфиг для него

Qeyd etmək lazımdır ki, php-fpm-dən istifadə həm də apache2 prosesinin istifadə etdiyi RAM miqdarını azaldacaq və PHP skriptlərinin işlənməsini bir qədər sürətləndirəcək.

3. Nəticə

Beləliklə, belə sadə hərəkətlərlə biz performansı optimallaşdıra və maşındakı yükü azalda bildik (bu halda RPI3).

Əlbəttə ki, sıxılmanın aktivləşdirilməsi (həqiqətən faydalıdır, lakin əksəriyyəti artıq standart olaraq aktivdir), MPM parametrlərinin dəyişdirilməsi (konfiqurasiya faylları), HostnameLookups-ı söndürmək və s. kimi yüzlərlə digər optimallaşdırma variantları var, lakin bu məqalədə mən çalışdım əks etdirin Bunlar mənə ən çox kömək edən məqamlardır və ümid edirəm ki, başqalarına da kömək edəcək.

Mənbə: www.habr.com

Добавить комментарий