Optimizar Apache - Eliminación de módulos que no vamos a utilizar - Parte II
kitai
Tras haber eliminado los módulos directamente sobre el fichero de configuración, ahora vamos a hacerlo recompilando el apache de inicio. Norlmalmente, un administrador de sistemas comprometido debería utilizar esta opción, puesto que mejora realmente el rendimiento final.
Lo primero que hacemos es comprobar que tenemos las herramientas de compilación “gcc”, “automake” y “autoconf”.
Posteriormente, descargamos la última versión de la página de descargas de la Apache Software Foundation.
Descomprimimos el fichero con las fuentes “tar zxf httpd-2.2.3.tar.gz”.
Apache configura unos cuantos módulos que, como explicamos en el artículo anterior, sencillamente no vamos a utilizar. Para especificar las diferentes opciones y módulos que queremos que Apache lleve de inicio, se utiliza la herramienta “configure”.
Con “./configure –help”, vemos las diferentes opciones de compilación.
Una línea de configuración básica sería:
“./configure –enable-httpd –disable-asis –enable-so –with-ssl –with-mpm=worker –prefix=/usr/local/apache –disable-userdir –disable-status”
Personalmente, suelo meter esa línea en un fichero llamado CONFIGURE que luego ejecuto, de esta manera luego recuerdo perfectamente qué opciones utilizé, en caso de tener que realizar actualizaciones. Aun así, siempre podeis acceder a esta información mirando el fichero “config.nice”, en donde está la línea de configure exacta con que se compiló Apache la última vez.
“–enable-httpd” - Habilita el servicio a través del protocolo HTTP.
“–enable-so” - Habilita la carga dinámica de módulos, es decir, podremos añadir módulos posteriormente a Apache a través de líneas de configuración LoadModule.
“–with-ssl” - Habilita el protocolo de transferencias HTTP seguras.
“–with-mpm=worker” - Seleccionamos el modo de “procesos más hilos”. Se supone que este módo es el que mejor rendimiento da en servidores modernos. Para hacer que Apache funcione sólo arrancando procesos utilizaremos “–with-mpm=prefork”.
“–prefix=/usr/local/apache” - para especificar el directorio en donde queremos instalar Apache cuando hagamos el “make install”.
“–disable-asis –disable-userdir –disable-status” - deshabilita dichos módulos.
Tras compilar el servidor utilizando “make“, ejecutando “./httpd -l” podemos ver con qué módulos nos vamos a quedar.
./httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
worker.c
http_core.c
mod_mime.c
mod_autoindex.c
mod_cgid.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_alias.c
mod_so.c
Si recordais de la primera parte de esta guía, esos son a grandes rasgos los módulos con que nos tenemos que quedar para tener un servidor Apache medianamente seguro, y con un rendimiento mejorado.
Si deseamos añadir los módulos de proxy, las líneas de configure son:
–enable-proxy Apache proxy module
–enable-proxy-connect Apache proxy CONNECT module
–enable-proxy-ftp Apache proxy FTP module
–enable-proxy-http Apache proxy HTTP module
–enable-proxy-ajp Apache proxy AJP module (para conexiones a Tomcat)
–enable-proxy-balancer Apache proxy BALANCER module (para hacer que Apache pueda balancear)
Para habilitar los módulos de cache, basta con añadir lo siguiente:
–enable-file-cache caché de ficheros
–enable-cache módulo global de cache
–enable-disk-cache cache en disco
–enable-mem-cache para cachear en memoria
Dichos módulos se pueden añadir a posteriori, si hemos cargado el módulo “mod_so”. Por ejemplo, si queremos añadir el módulo de caché, nos vamos al directorio “modules/cache”, y ejecutamos:
“/usr/local/apache/bin/apxs -c -a -i mod_cache.c”
La herramienta “apxs” nos compilará el módulo, creará el fichero mod_cache.so, y, especificando el parámetro “-i”, nos lo instalará en el directorio adecuado e incluso añadirá la directiva LoadModule necesaria al fichero httpd.conf.
Para finalizar la instalación, ejecutamos “make install”, y automaticamente se instalará Apache en el directorio que le hayamos indicado con el parámetro “–with-prefix”.
Si tenemos una versión de Apache instalada desde RPM, o DEB, lo mejor es quitarla del arranque y sustituir en los ficheros de inicio la llamada a dicho ejecutable anterior. En el caso de Redhat, /etc/init.d/httpd.
Posted in General, Optimización |
Diciembre 31st, 2006 at 20:22
Me parece genial la información que entregaís pero podrias hacer alguna acotación o referencia a los procesos en windows, sería de gran ayuda…
Gracias.