Si detectas constantes problemas en la carga de tus páginas, lentitud, caídas de servicio o cualquier problema relacionado con el servicio Web, sería recomendable revisar la configuración de Apache.
Es posible que la configuración no se adapte totalmente a las necesidades de cada uno, pero sirven como punto de referencia ya que han sido probadas en multitud de ocasiones y situaciones, demostrando un resultado óptimo.
Backup en la configuración de Apache
Lo primero que tienes que hacer es un backup de la configuración de Apache.
Normalmente el archivo de configuración de Apache se puede encontrar en /etc/apache2/apache2.conf pero dependiendo de la distribución puede encontrarse en otras ubicaciones como por ejemplo /etc/httpd/conf/httpd.conf, para hacer un backup ejecutaremos:
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.backupO en el caso de ser httpd:
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backupEdición de los diferentes valores
Una vez hecha la copia de seguridad, procede a editar los diferentes valores con la herramienta de edición que prefieras (vi, vim, nano,…). Por ejemplo:
# vi /etc/apache2/apache2.confPara la configuración optimizada que proponemos tendrás que modificar los siguientes valores para que queden como a continuación:
Timeout 20
KeepAlive On
MaxKeepAliveRequests 64
KeepAliveTimeout 3
HostnameLookups OffLuego deberás localizar la sección del módulo Prefork (ya que es el que se emplea normalmente) y tendrás que dejar los valores de la siguiente manera:
Si desconoces bajo qué MPM está funcionando tu Apache, ya sea mediante prefork o worker, puedes consultarlo siguiendo los pasos de nuestro artículo Ver si Apache está funcionando bajo Prefork o Worker
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 200
MaxClients 200
MaxRequestsPerChild 4000
</IfModule>En nuevas versiones de Apache2.4+, MaxClients ha sido sustituido por MaxRequestWorkers, por lo que deberás utilizar este parámetro en lugar de MaxClients si tu versión de Apache lo requiere. Ambos parámetros cumplen la misma función: definir el número máximo de solicitudes que pueden ser atendidas simultáneamente por el servidor. Por ejemplo:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 200
MaxRequestWorkers 200
MaxRequestsPerChild 4000
</IfModule>Una vez realizados los cambios, guarda el archivo y reinicia el servicio para aplicarlos:
# /etc/init.d/apache2 restartO bien:
# /etc/init.d/httpd restartSi después de realizar estos cambios los problemas con Apache persisten, puedes revisar el log de error de Apache y buscar errores relacionados con MaxClient o MaxWorker:
# grep -i maxclient /var/log/apache2/error_log*O bien:
# grep -i maxclient /var/log/httpd/error_log*Si el comando devuelve algún mensaje de error relacionado con los límites de procesos o conexiones, será necesario ajustar nuevamente la configuración de los parámetros MaxClients o MaxRequestWorkers, incrementando sus valores según las necesidades y los recursos disponibles en el servidor.
Para obtener información más detallada sobre estos parámetros y otros ajustes relacionados con los MPM de Apache, puedes consultar la documentación 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
Fuentes: Documentación de Apache, Documentación de MaxClients