Оптимизатсияи иҷрои 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

Модулҳое, ки системаро бештар бор мекунанд (аз таҷрибаи шахсӣ) инҳоянд:

  • PHP, Ruby, Perl ва модулҳои дигар барои забонҳои гуногуни скрипт
  • SSL
  • Решит
  • CGI

Пас, дар ҳолатҳое, ки ба шумо ин модулҳо лозим нестанд, ман тавсия медиҳам, ки ин модулҳоро хомӯш кунед.

Инчунин, пас аз хомӯш кардани ягон модул, ман тавсия медиҳам, ки фармони - apache2ctl configtest, ки конфигуратсияи сайтҳои истифодашударо месанҷад ва агар яке аз модулҳои ғайрифаъол барои онҳо зарур бошад, хатогӣ ба вуҷуд меорад.

2. Тағйир додани MPM (Модули бисёркоркард) ва истифодаи php-fpm

Бо нобаёнӣ, пас аз насб, apache2 MPM Prefork (1 ришта барои 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 инчунин миқдори RAM-ро, ки раванди apache2 истифода мебарад, кам мекунад ва коркарди скриптҳои PHP-ро каме суръат мебахшад.

3. Хулоса

Ҳамин тариқ, бо чунин амалҳои оддӣ мо тавонистем корҳоро оптимизатсия кунем ва сарбории мошинро кам кунем (дар ин ҳолат RPI3).

Албатта, садҳо имконоти дигари оптимизатсия мавҷуданд, ба монанди фаъол кардани фишурдасозӣ (ки воқеан муфид аст, аммо аксарият аллакай бо нобаёнӣ фаъол шудаанд), тағир додани танзимоти MPM (файлҳои конфигуратсия), ғайрифаъол кардани HostnameLookups ва ғайра, аммо дар ин мақола ман кӯшиш кардам инъикос кардан Ин нуктаҳое ҳастанд, ки ба ман бештар кумак карданд ва ман умедворам, ки ба дигарон кӯмак хоҳанд кард.

Манбаъ: will.com

Илова Эзоҳ