Inicio / Wikis / Tutoriales / Instalar Apache MySQL - Optimizando

Instalar Apache MySQL - Optimizando

(4 opiniones)
Tutorial creado por el-brujo. Extraido de: http://foro.elhacker.net/index.php/topic,251.0.html
27 de Enero de 2005
PHPProgramación webServidores webApache

7 - Optimizando

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
Más:
Como quitar y modificar el banner del servidor Apache por SeSoX
http://www.iespana.es/hollygova/servicios_red/apache/apache_banner.txt------6b) Problemas comunes
Si en el apache-status está todo el rato "L", o sea "Logging", te está diciendo ni más ni menos, que purges (vacies los logs, pero antes analiarlos con Awstats, WebAlizer, etc), ya deben tener un tamaño consdirable, y al apache le cuesta mucho rato loggear, o ya no tiene espacio.
Si en el apache-status hay muchas conexiones "R", o sea "Reading", significa que las dns de tu dominio están haciendo el tonto (han caído temporalmente, o algo parecido).


7)
Protegiendo tu ancho de banda con Apache
La mejor manera para proteger el ancho de banda de tu apache es haciendo que nadie pueda linkarte descargas o imágenes. Las técinas de oculstimos en directorios raros o scripts PHP, no son métodos del todo efectivos.
El único requisito previo es tener activado el módulo rewrite.
Vamsos a ver un ejemplo haciendo un .htaccess en el directorio que queramos proteger y añadiendo:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER ^http://yourDomain.dom/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourDomain.dom/.*$ [NC] RewriteRule .*.png$ - [L]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://yourDomain.dom/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourDomain.dom/.*$ [NC] RewriteRule .*.jpg$ - [L]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !
^http://yourDomain.dom/.*$ [NC]
RewriteCond %{HTTP_REFERER} !
^http://www.yourDomain.dom/.*$ [NC] RewriteRule .*.gif$ - [L]
Esto permite que las imagenes png, jpg y gif de ese directorio puedan ser vistas por nosotros, pero no linkadas o vistas desde otros dominios.
Protegiendo que te linkeen (segunda parte)
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?site.com/.*$ [NC]
RewriteRule .(gif|jpg)$ - [F]
RewriteRule .(gif|jpg)$
http://www.site.com/stop.gif [R,L]
Falta cambiar "site.com" y stop.gif with por tus nombres reales. Al intentar ver una imagen desde otro dominio aparece la imagen stop.gif.
¿verdad que es fácil? Modo mod_write activado y expresiones regulares y marchando.  
Hay otras maneras, si tienes un descargas en archivos "zip", puedes proteger estes archivos mediante contraseña. También puedes incluir un readme o un .url dentro del zip.
Otra buena manera de proteger tu ancho de banda (especialmente en las descargas) es utilizando la "Autorización del Apache" que se ve en el punto 8.
Veamos ahora un ejemplo:
Queremos proteger el directorio descargas:
<Directory "/home/pepe/public_html/descargas">
    AuthUserFile /home/pepe/htpasswd
    AuthType Basic
    AuthName "Escribe un nombre de usuario y contraseña"
    require valid-user
</Directory>
De esta manera para descargar cualquier archivo o documento que haya en la carpeta descargas será necesario introducir un nombre de usuario y contraseña válida. De la misma manera si hay una carpeta dentro de descargas (descargas/otrasdescargas) quedará también automáticamente protegida.
Para aprender a crear el htpasswd consulta el punto 8.
Otra manera pasa por subir las descargas a otro lugar y sin borrarlas de tu maquina incluir este sencillo código:
Redirect permanent /descargas http://www.miotraweb.com/descargas------Todas las descargas se bajarán de "miotraweb.com", aunque estén en nuestra máquina.
 

Valora este capítulo: (4 opiniones)
Autor y licencia de 'Instalar Apache MySQL - Optimizando'
el-brujo Extraído de: http://foro.elhacker.net/index.php/topic,251.0.html

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
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.

Opiniona sobre 'Instalar Apache MySQL - Optimizando' (4)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este tutorial



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Instalar Apache MySQL - Optimizando'

Cuando quise montar mi primer servidor linux estuve buscando informacion para poder configurar linux ,... Más »
En este artículo explicamos paso a paso como realizar una instalación a partir de los... Más »
Para testear en local yo utilizo un paquete llamdo WAMP que te instala Apache,PHP5, MySQL,... Más »
La instalación de estos programas es muy fácil, PHP y MySQL vienen comprimidos en formato... Más »
Instalación y configuración de Postfix, Courier y MySQL para operar juntos y conseguir un completo... Más »
¿Estás seguro de que deseas eliminar este capítulo?