Optimumigo de rendimento de Apache2

Multaj homoj uzas apache2 kiel retservilon. Tamen, malmultaj homoj pensas pri optimumigado de ĝia rendimento, kiu rekte proporcie influas la ŝarĝan rapidon de retejo-paĝoj, la rapidecon de prilaborado de skriptoj (precipe php), same kiel pliigon de CPU-ŝarĝo kaj pliiĝon de la kvanto de RAM uzata.

Tiel, la sekva manlibro devus helpi komencantojn (kaj ne nur) uzantojn.
Ĉiuj ekzemploj malsupre estis uzitaj sur Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Do ni komencu.

1. Malŝalti neuzatajn modulojn

La unua metodo estas simple malŝalti modulojn, kiujn vi ne uzas:

La listo de nuntempe uzataj moduloj videblas per la komando:

apache2ctl -M

Por malŝalti la modulon, uzu la komandon:

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

Sekve, por ebligi la modulon, uzu la komandon:

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

Bonvolu noti tion kiam vi uzas a2dismod, la nomo de la modulo devas esti skribita sen la vorto modulo mem.

Ekzemple, se vi estas en la eligo de la komando apache2ctl -M vidis prokura_modulo, tiam por malŝalti ĝin vi devas uzi la komandon - a2dismod prokurilo

La moduloj kiuj plej ŝarĝas la sistemon (laŭ persona sperto) estas:

  • PHP, Ruby, Perl kaj aliaj moduloj por diversaj skriptlingvoj
  • SSL
  • Reskribi
  • CGI

Do en kazoj kie vi ne bezonas ĉi tiujn modulojn, mi rekomendas malŝalti ĉi tiujn modulojn.

Ankaŭ, post malŝalto de ajna modulo, mi rekomendas uzi la komandon - apache2ctl agordo, kiu kontrolos la agordon de la uzitaj retejoj kaj se iu el la malfunkciigitaj moduloj estis necesa por ili, ĝi generos eraron.

2. Ŝanĝante MPM (Multi-Processing Module) kaj uzante php-fpm

Defaŭlte, post instalado, apache2 uzas MPM Prefork (1 fadeno per 1 konekto), kiu signife reduktas rendimenton, sed samtempe plibonigas stabilecon kaj sekurecon.

Sed por optimumigi rendimenton, mi rekomendas uzi MPM Worker, kiu ebligas al vi uzi plurajn fadenojn per konekto.

Por ebligi ĝin ni uzas la jenajn komandojn:

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

Tamen, kiam vi uzas Worker vi povas renkonti problemon ĉar... La modulo php7.3 dependas de la modulo Prefork.

Por solvi ĉi tiun problemon, ni instalu la modulon php7.3-fpm, kiu estos uzata por ruli PHP-skriptojn:

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

Indas noti, ke uzado de php-fpm ankaŭ reduktos la kvanton de RAM uzata de la procezo apache2 kaj iomete plirapidigos la prilaboradon de PHP-skriptoj.

3. Konkludo

Tiel, per tiaj simplaj agoj ni povis optimumigi rendimenton kaj redukti la ŝarĝon sur la maŝino (en ĉi tiu kazo RPI3).

Kompreneble, ekzistas centoj da aliaj optimumigaj opcioj, kiel ebligi kunpremadon (kio estas vere utila, sed la plej multaj jam estas ebligitaj defaŭlte), ŝanĝi MPM-agordojn (agordaj dosieroj), malŝalti HostnameLookups ktp., sed en ĉi tiu artikolo mi provis pripensi Ĉi tiuj estas la punktoj kiuj helpis min plej, kaj mi esperas helpos aliajn.

fonto: www.habr.com

Aldoni komenton