Explicații despre MPM-urile Apache

Serverul web Apache este cel mai popular server web din lume. Acest lucru se datorează în parte designului său modular. Apache 2 a introdus modulele de procesare multiplă, sau MPMs (Multi-Processing Modules). MPM-urile modifică funcționalitatea de bază a serverului web. Acestea fac acest lucru prin modificarea modului în care Apache ascultă rețeaua, acceptă și gestionează cererile. O mare parte din această funcționalitate este destul de tehnică și nu intră în sfera de competență a acestui articol. Acest articol va explica pe scurt ce sunt și cum funcționează diferitele MPM-uri. Pentru informații mai detaliate despre diferitele MPM-uri, vă rugăm să vizitați documentația Apache.

Introducere

Toate versiunile de Apache 2.0 și mai mari rulează o anumită formă de MPM și există o varietate de MPM-uri pentru diferitele sisteme de operare. Acest articol se va concentra doar asupra celor disponibile pentru sistemul de operare Linux. În primul rând, veți dori să determinați ce versiune de Apache și ce MPM rulează în prezent serverul dumneavoastră. Puteți determina acest lucru executând următoarea comandă pe linia de comandă.

httpd -V | grep -i 'version\|mpm'

Executarea acestei comenzi vă va oferi o ieșire care va arăta astfel:

# httpd -V | grep -i 'version\|mpm'
Server version: Apache/2.4.16 (Unix)
Server MPM: event

În acest caz, serverul rulează Apache 2.4 și utilizează Event MPM. Această ieșire poate fi diferită în funcție de versiunea Apache și MPM pe care serverul dvs. rulează în prezent.

Schimbarea MPM-ului pe un server cPanel este ușoară. Trebuie doar să rulați scriptul EasyApache și să selectați MPM-ul pe care îl doriți dintre cele disponibile. Lista care este prezentă va fi diferită în funcție de faptul că executați Apache 2.0, Apache 2.2 sau Apache 2.4. La versiunile Apache mai mici de 2.4, doar Prefork și Worker sunt considerate stabile. Event MPM este considerat experimental pe Apache 2.2 și ar trebui să fie folosit numai cu Apache 2.4 sau mai târziu.

Dacă nu vă simțiți confortabil rulând singur EasyApache, vă rugăm să contactați Heroic Support® și vom fi mai mult decât bucuroși să vă ajutăm.

Prefork

Cu modulul Prefork instalat, Apache este un server web non-threaded, pre-forking. Aceasta înseamnă că fiecare proces copil Apache conține un singur fir de execuție și gestionează câte o singură solicitare pe rând. Din acest motiv, acesta consumă mai multe resurse decât MPM-urile cu fire de execuție: Worker și Event.

Prefork este MPM-ul implicit, astfel încât, dacă nu este selectat niciun MPM în EasyApache, va fi selectat Prefork. Este în continuare cea mai bună alegere dacă Apache trebuie să folosească biblioteci non-thread safe, cum ar fi mod_php (DSO), și este ideal dacă izolarea proceselor este importantă.

Worker

MPM-ul Worker transformă Apache într-un server web multiproces, multithreaded. Spre deosebire de Prefork, fiecare proces copil sub Worker poate avea mai multe fire de execuție. Ca atare, Worker poate gestiona mai multe cereri cu mai puține resurse decât Prefork. Worker este, în general, recomandat pentru serverele cu trafic mare care rulează versiuni Apache anterioare la 2.4. Cu toate acestea, Worker este incompatibil cu bibliotecile non-thread safe. Dacă aveți nevoie să rulați ceva care nu este thread safe, va trebui să rămâneți la Prefork.

Event

Care proces sub Event poate conține, de asemenea, mai multe fire de execuție, dar, spre deosebire de Worker, fiecare este capabil de mai mult de o sarcină. Apache are cele mai mici cerințe de resurse atunci când este utilizat cu MPM Event.

Event, totuși, este suportat numai pe serverele care rulează Apache 2.4. Sub Apache 2.2, Event este considerat experimental și este incompatibil cu unele module de pe versiunile mai vechi ale Apache. Cu toate acestea, pe serverele Apache 2.2 cu trafic ridicat, unde Apache a avut probleme cu memoria, actualizarea Apache pentru a profita de Event MPM poate da rezultate semnificative.

Celelalte MPM-uri

Există o serie de alte MPM-uri experimentale, cum ar fi Threadpool, Perchild și Leader. Liquid Web vă recomandă să nu rulați aceste MPM-uri. Deoarece sunt experimentale, nu există garanții că vor funcționa conform așteptărilor și nu putem nici să le susținem, nici să garantăm că le vom putea repara.

Adaptarea modulelor multiproces la Apache a crescut puterea și flexibilitatea acestuia. MPM-urile permit utilizatorilor să schimbe comportamentul de bază. Acest lucru mărește ceea ce poate face un utilizator cu Apache fără a fi nevoit să instaleze software suplimentar. Dacă aveți întrebări cu privire la acest lucru sau la orice altceva, vă rugăm să dați un telefon la Heroic Support®.

.