Ce face Directiva KeepAliveTimeout & MaxKeepAliveRequests - Controlul ciclului de viață KeepAlive
KeepAliveTimeout determină câte secunde va aștepta Apache o nouă cerere de la același client înainte de a închide conexiunea TCP inactivă.
O valoare prea mare (ex: 60 secunde) pe un server aglomerat cu MPM Prefork va bloca procesele worker în așteptare, epuizând sloturile libere.
O valoare de 2 până la 5 secunde este ideală pentru a permite browserului să descarce toate resursele paginii curente, eliberând rapid resursa pentru alți clienți.
MaxKeepAliveRequests (de regulă 100) previne scurgerile de memorie prin reciclarea conexiunii după un număr fix de cereri.
Exemple
Exemplul 1: Reglarea fină a timeout-ului KeepAlive pentru trafic intens
Optimizează reciclarea rapidă a conexiunilor pe servere ocupate.
KeepAliveTimeout 3
MaxKeepAliveRequests 150
Ieșire în terminal
Conexiunile inactive sunt închise după 3 secunde de liniște.
Greșeli frecvente
- Setarea KeepAliveTimeout la 15-30 secunde; pe servere cu trafic mare, această setare poate provoca blocaje prin epuizarea numărului de conexiuni simultane (MaxRequestWorkers).
Comenzi înrudite
Directiva KeepAlive - Reutilizarea conexiunilor TCP persistente: Permite trimiterea mai multor cereri HTTP succesive prin aceeași conexiune TCP deschisă (HTTP Persistent Connections).Modulul mpm_event - Arhitectura multi-proces asincronă de înaltă performanță: Configurează modelul MPM modern ghidat de evenimente (event-driven), similar cu Nginx, pentru gestionarea a mii de conexiuni concurente.Directiva Timeout - Limita de timp pentru transferul pachetelor de rețea: Stabilește durata maximă în secunde pe care Apache o așteaptă între transmiterea sau recepționarea a doi octeți consecutivi.