Si detectes problemes constants en la càrrega de les teves pàgines, lentitud, caigudes del servei o qualsevol problema relacionat amb el servei web, seria recomanable revisar la configuració d'Apache.
És possible que la configuració no s'adapti del tot a les necessitats de cadascú, però serveix com a punt de referència, ja que s'ha provat en multitud d'ocasions i situacions i ha demostrat un resultat òptim.
Còpia de seguretat de la configuració d'Apache
El primer que has de fer és una còpia de seguretat de la configuració d'Apache.
Normalment el fitxer de configuració d'Apache es pot trobar a /etc/apache2/apache2.conf però, segons la distribució, es pot trobar en altres ubicacions, com ara /etc/httpd/conf/httpd.conf. Per fer una còpia de seguretat, executarem:
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.backupO en el cas que sigui httpd:
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backupEdició dels diferents valors
Un cop feta la còpia de seguretat, edita els diferents valors amb l'eina d'edició que prefereixis (vi, vim, nano,…). Per exemple:
# vi /etc/apache2/apache2.confPer a la configuració optimitzada que proposem hauràs de modificar els valors següents perquè quedin com es mostra a continuació:
Timeout 20
KeepAlive On
MaxKeepAliveRequests 64
KeepAliveTimeout 3
HostnameLookups OffDesprés hauràs de localitzar la secció del mòdul Prefork (ja que és el que s'utilitza normalment) i hauràs de deixar els valors de la manera següent:
Si desconeixes amb quin MPM funciona el teu Apache, ja sigui amb prefork o worker, pots consultar-ho seguint els passos del nostre article Com veure si Apache funciona amb Prefork o Worker
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 200
MaxClients 200
MaxRequestsPerChild 4000
</IfModule>En versions noves d'Apache2.4+, MaxClients s'ha substituït per MaxRequestWorkers, per la qual cosa hauràs d'utilitzar aquest paràmetre en lloc de MaxClients si la teva versió d'Apache ho requereix. Tots dos paràmetres compleixen la mateixa funció: definir el nombre màxim de sol·licituds que el servidor pot atendre simultàniament. Per exemple:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 200
MaxRequestWorkers 200
MaxRequestsPerChild 4000
</IfModule>Un cop fets els canvis, desa el fitxer i reinicia el servei per aplicar-los:
# /etc/init.d/apache2 restartO bé:
# /etc/init.d/httpd restartSi després de fer aquests canvis els problemes amb Apache persisteixen, pots revisar el registre d'errors d'Apache i cercar errors relacionats amb MaxClient o MaxWorker:
# grep -i maxclient /var/log/apache2/error_log*O bé:
# grep -i maxclient /var/log/httpd/error_log*Si l'ordre retorna algun missatge d'error relacionat amb els límits de processos o connexions, caldrà tornar a ajustar la configuració dels paràmetres MaxClients o MaxRequestWorkers, augmentant-ne els valors segons les necessitats i els recursos disponibles al servidor.
Per obtenir informació més detallada sobre aquests paràmetres i altres ajustos relacionats amb els MPM d'Apache, pots consultar la documentació oficial:
- Apache 2.0: http://httpd.apache.org/docs-2.0/mod/mpm_common.html
- Apache 2.4: https://httpd.apache.org/docs/current/es/mod/mpm_common.html
Fonts: Documentació d'Apache, Documentació de MaxClients