Curso de Apache - Optimizando

8 - Optimizando

[editar]
Curso gratis creado por Álex, el-brujo (el-hacker).
04 de Noviembre de 2005
Tuning Apache en Linux

Para obtener el máximo rendimiento del Servidor web Apache, configurar el httpd.conf de Linux/Unix.

Los creadores del Apache afirman que no está diseñado, o no es su máxina prioridad, el rendimiento, pero aún así es posible configurarlo para obtener un mejor rendimiento. Especialmente es indicado para máquinas con una buena/nuy buena conexión a internet.

Configuración mínima: 256 RAM.

Con esta nueva configuración Apache consumirá más memoria, pero si contamos con bastante memoria (1 GB o 2 GB) no hay problema.

MaxKeepAliveRequests 0

# en comentarios los valores originales

#MinSpareServers 5

#MaxSpareServers 10

MinSpareServers 16

MaxSpareServers 30

También podemos poner (pero mejor tener una máquina con un tráfico bestial y 2 GB de ram minímo)

MinSpareServers 100

Pero mejor que tengas mucha ram y una buena cpu. Cada SpareServer será un subproceso del apache, que por lo tanto, consumirá memoria ram.

Número de procesos al arrancar el Apache:

#StartServers 5

StartServers 16

MaxRequestsPerChild 0

Esto es todo, los valores KeepAlive, Timeout, etc, pueden dejarse por defecto.

También el MaxClients 150 (por defecto, puedes ponerle un valor más grande). Piensa que serían 150 conexiones simultaneas.

Los valores 0, indican "Ilimitado", es lo recomendado, si es admitido.

También la opción de "HostNameLookups"

es mejor ponerla en "HostNameLookups off"  , ya que así evitamos tener que hacer un reverso de DNS de cada visitante que entra y hace un "hit", y aunque existe una caché de DNS para agilizar este proceso, no es recomendable.

Otra cosa que he leído que dicen que para mejorar el rendimiento, bueno, mejor dicho, para no estropearlo, es usar apache (httpd) via tcpd wrappers con el inetd.conf. Si necesitas, por ejemplo, bloquear el acceso a alguien usa un .htaccesss usando un deny from y no usando inetd.conf. Apache es suficientemente seguro y configurable como para depender de tcp wrappers.

Para probar el rendimiento del apache, pueedes hacer un test que lleva incluido el propio apache. Es un ejecutable que se llama "ab" y está en el directorio /bin o /sbin. Este programa simula gran cantidad de tráfico para el Apache y es una muy buena manera de medir el rendimiento de tu apache.

Sino quieres que se muestre la versión del Apache que estás usando:

Busca ServerSignature y lo pones en off:

ServerSignature off

y añades debajo:

ServerTokens ProductOnly

De esta manera la versión de tu Apache será "Apache" a secas, sin decir la versión exacta (Ej. --> Apache 1.3.29).




Configurando Apache versión httpd-2.0.40 como IIS 5.0.




1)en el fichero: httpd-2.0.40/include/ap_release.h

cambiamos las lineas:

#define AP_SERVER_BASEVENDOR "Apache Software Foundation"

#define AP_SERVER_BASEPRODUCT "Apache"

#define AP_SERVER_BASEREVISION "2.0.40"

#define AP_SERVER_BASEVERSION AP_SERVER_BASEPRODUCT "/" AP_SERVER_BASEREVISION

#define AP_SERVER_VERSION AP_SERVER_BASEVERSION

#define SERVER_BASEVENDOR "Apache Group"

#define SERVER_BASEPRODUCT "Apache"

#define SERVER_BASEREVISION "1.3.24"

#define SERVER_BASEVERSION SERVER_BASEPRODUCT "/" SERVER_BASEREVISION

de manera que queden asi:

#define AP_SERVER_BASEVENDOR "Microsoft Corp"

#define AP_SERVER_BASEPRODUCT "Microsoft-IIS"

#define AP_SERVER_BASEREVISION "5.0"

#define AP_SERVER_BASEVERSION AP_SERVER_BASEPRODUCT "/" AP_SERVER_BASEREVISION

#define AP_SERVER_VERSION AP_SERVER_BASEVERSION



2)

en el fichero:

httpd-2.0.40/server/core.c

cambiamos la linea:

static enum server_token_type ap_server_tokens = SrvTk_FULL;

de manera que quede asi:

static enum server_token_type ap_server_tokens = SrvTk_MIN;

en este mismo fichero cambiamos:

static apr_status_t reset_version(void *dummy)

{

version_locked = 0;

ap_server_tokens = SrvTk_FULL;

server_version = NULL;

return APR_SUCCESS;

}

por esto otro:

static apr_status_t reset_version(void *dummy)

{

version_locked = 0;

ap_server_tokens = SrvTk_MIN;

server_version = NULL;

return APR_SUCCESS;

}



3)para terminar editamos el fichero:

httpd-2.0.40/os/unix/os.h

cambiando la linea:

#ifndef PLATFORM

#define PLATFORM "Unix"

#endif

para que queden asi:

#ifndef PLATFORM

#define PLATFORM "Win32"

#endif
[editar]

Sé el primero en opinar


Cursos gratis relacionados con 'Curso de Apache'

Un servidor web (apache) es un programa que permite que otros ordenadores vean tu web... Más »

Autor y licencia de 'Curso de Apache'


Curso gratis de Álex, el-brujo (el-hacker). Extraido de: CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.