mod_qos (quality of service) es un modulo para apache por medio del cual nos es posible controlar la cantidad de accesos y trafico para optimizar la calidad del servicio, y así evitar que un ataque, usuarios traviesos o simplemente un exceso de visitas nos hagan pasar mal el rato.
Instalación en CentOS (aunque similar en las demás distribuciones), antes que nada instalar las librerias necesarias ejecutando:
# yum install openssl-devel.x86_64
# yum install pcre-devel.x86_64
# yum install httpd-devel.x86_64
una vez instaladas descargar mod_qos desde http://sourceforge.net/projects/mod-qos/ o desde el sitio oficial http://opensource.adnovum.ch/mod_qos/ en donde encontraremos documentación adicional para personalizar la configuracion
y ejecutamos
# tar -xfz mod_qos-10.5.tar.gz
# mod_qos-10.5
# cd apache2
# apxs -i -c mod_qos.c
si no salen mensajes de error la ultima linea menciona que se genero el archivo
/usr/lib64/httpd/modules/mod_qos.so
ahora creamos un archivo en nuestra configuración de apache /etc/httpd/conf.d/qos.conf y agregamos:
LoadModule qos_module /usr/lib64/httpd/modules/mod_qos.so
## QoS Configuracion
<IfModule mod_qos.c>
#Manejo de conexiones hasta 20000 IPs diferentes
QS_ClientEntries 20000
# Se permite solamente 20 conexiones por IP
QS_SrvMaxConnPerIP 20
# Maximo numero de conexiones TCP activas 156
MaxClients 156
# Desactivar la directiva keep-alive cuando el 70% de las conexiones TCP estan ocupadas:
QS_SrvMaxConnClose 70%
# Minimo de velocidad para peticiones / respuestas (niega a los clientes lentos que bloquean el servidor ,
#Ejemplo; el script slowloris mantiene las peticiones HTTP :
QS_SrvMinDataRate 150 1200
# Limite de peticiones de encabezados y cuerpo (con cuidado, limita las cargas y las peticiones POST):
# LimitRequestFields 30
# QS_LimitRequestBody 102400
</IfModule>
reiniciamos apache y listo...
Funcionando más que sobrado en un XEON 8 cores con mas de 300mil visualizaciones diarias a sitios con php/mysql aun en hora pico, claro que también cuenta con APC Cache del cual hablare luego
CPU Usage: u20.77 s4.02 cu0 cs0 - .462% CPU load
16.9 requests/sec - 185.6 kB/second - 11.0 kB/request
3 requests currently being processed, 8 idle workers
__.W__.C_C._._.._...............................................
................................................................
......................
ACTUALIZACIÓN 6 Junio 2012
Si muestra el error "undefined symbol: EVP_DecryptFinal" la solución es
Intenta instalar y después re compilar
# yum install libtool openssl*
Si persiste la falla busca en /etc/http/conf.d/
# LoadModule ssl_module modules/mod_ssl.so
colócalo como comentario y ahora agrégalo arriba de mod_qos quedando :
LoadModule ssl_module modules/mod_ssl.so
LoadModule qos_module /usr/lib64/httpd/modules/mod_qos.so
y listo...
No hay comentarios:
Publicar un comentario