« Home | Crea un comic a partir de una conversacion de chat... » | Las 100 mejores empresas donde trabajar » | Disney compra Pixar » | Hoy es el peor día del año » 

domingo, enero 29, 2006 

Cómo configurar Apache para evitar el efecto Slashdot

Son muchos los geeks que tienen su servidor web en su propia casa, sobre un servidor hecho con un PC barato que tiene LAMP (Linux+Apache+MySQL+PHP) instalado. En caso de que alguna
de sus páginas caiga presa del efecto Slashdot (en español, el efecto Barrapunto), os cuento una configuración de Apache para poder salir vivos.

Sería modificar el fichero "httpd.conf" de la siguiente manera:

- MaxKeepAliveRequests 0: la directiva KeepAlive es la que le permite a Apache que existan conexiones persistentes, para que cada nueva conexión no tenga que ser iniciada con cada petición. Si ponemos MaxKeepAliveRequests a 0 le diremos a Apache que acepte ilimitadas conexiones de este tipo.

- KeepAliveTimeout 15: debido a que las conexiones persistentes son permitidas, es importante fijar un tiempo máximo de vida. Con el valor seleccionado, la conexión se acabará al de 15 segundos de inactividad.

- MinSpareServers 15: es el número mínimo de servidores de repuesto que queremos que estén corriendo en un momento dado. De esta manera, si hay múltiples peticiones simultáneas, ya habrá hijos corriendo para manejarlas.

- MaxSpareServers 65: es lo mismo que el anterior, pero con número máximo de servidores de repuesto.

- StartServers 15: es el número de servidores Apache que se arrancarán inicialmente

- MaxClients 500: es el número máximo de clientes que se pueden conectar al servidor web en un momento dado. Si ponemos un número muy bajo, los clientes serán rechazados en situaciones de tráfico normal, y si lo ponemos muy alto cargará excesivamente el servidor en periodos de sobrecarga. El número 500 es adecuado para la mayoría de las necesidades.

- MaxRequestsPerChild 100000: establece el número máximo de peticiones que cada proceso-hijo va a manejar. Se utiliza para intentar evitar 'memory leaks'. Si lo ponemos muy bajo, quizá muchos procesos finalicen sin ningún motivo aparente, y si lo ponemos a 0 (ilimitado), podemos conseguir que se niegue cualquier protección de 'memory leaks' reales.

- HostnameLookups off: con esto, prevenimos que las visitas tengas que hacer un DNS lookup.

Traducido de este enlace original.