Apache Consumiendo Muchos Recursos – Configuración para Contenido Estático

apache-logo

Configuración Apache 2.2

Esta semana estuve fuera de casa pero igual tuve que revisar algunos servidores, algunos muy especiales con mucho contenido estático miles de imágenes, archivos flash y todo lo que sea considerado estático.

En fin, me tope con un curioso problema, apache con prefork, worker o event con un load de más de 50 y subiendo a mucho más y con nginx un load de de menos de 1 como es de esperarse, cualquiera dirá que es mejor dejar nginx y todo ese rollo, aunque el cliente quiere apache, quiere htaccess y todo eso, así que ¿ por que no dejar apache ? igual no es tan malo como parece y es un buen reto saber por que la carga sube tanto.

Como estoy algo cansado les resumo un poco, la configuración que deje para servir imágenes con apache y mantener la carga del server igual que con nginx o al menos lo más similar posible fue con mpm-event, exactamente esta:


ServerLimit 24
StartServers 3
MaxClients 1472
MinSpareThreads 32
MaxSpareThreads 112
ThreadLimit 64
ThreadsPerChild 64
MaxRequestsPerChild 0

Bueno, esa fue la inicial luego la modifique un poco más para adaptarla al server y a la cantidad de peticiones que tiene, pero eso les puede servir de base, recuerden algo muy importante, cada servidor es diferente y requiere una configuración espacial y más aun si tiene mucha carga, si no la tiene la configuración por defecto viene bien.

Y bueno lo de la carga alta de apache no era por la configuración si no por los VHOST y por peticiones innecesarias que hacían que la carga subiera tanto, más que nada porque todo era contenido estático, muchas carpetas y demasiados archivos por carpeta y eso generaba que colapsara.

La solución la encontré leyendo lo que no muchos leen, la documentación, precisamente esta: Documentación de apache

Exactamente la parte de:

FollowSymLinks and SymLinksIfOwnerMatch

Algunas consultas innecesarias :/

Y también la parte de:

AllowOverride

Y bueno quite de todo un poco y apache quedo casi tan bien como NGINX leyendo el .htaccess solo en la primer carpeta y no en todas las demás o sea /PrimerCarpeta/TodasLasDemas/ que de paso nos ahorra consultas y en general el vhost queda muy sencillo:


ServerAdmin [email protected]
ServerName tudominio.skamasle.com
DocumentRoot /ruta/skamasle/
ErrorLog ${APACHE_LOG_DIR}/error.log

Sin access_log y nada que estorbe, aunque claro el server solo sirve contenido estático, con la config y otros ajustes casi no se nota la diferencia entre apache y nginx solo en el consumo de memoria y puede que la carga con apache sea un pelin más lenta, pero todo es cuestión de reconfigurar un poco más.

Y bueno cada server es un mundo y cada config también, leyendo la documentación se aprende mucho y según el tipo de server es mejor probar entre worker, prefork y event, que pueden ver más info sobre los mpm en el enlace que deje arriba en el apartado Choosing an MPM

Publicado por Maks Skamasle

Sysadmin, fotógrafo aficionado y me gusta tomar el té por las madrugadas cuando no hay ruido ni sol y mas fresco esta el día.

No usamos Cookies para rastrear nada, navega tranquilo...
Seguir Navegando
x