apache, getting the best version
Post on 18-Dec-2014
66 Views
Preview:
DESCRIPTION
TRANSCRIPT
ApacheInstalación
Pasos a seguir
[1] PREFIX hay que reemplazarlo por la ruta en la que se va a instalar Apache. Si no especifica ningún valor en PREFIX, el valor por defecto que se toma es /usr/local/apache2
Configuración básica
/etc/httpd/conf/httpd.conf
ApacheMejora del rendimiento
Apache Tuning1. Cargar sólo los módulos necesarios2. Usar los módulos de multiprocessing apropiados3. DNS lookup4. Cambiando parametros
i. MaxClientsii. MinSpareServers, MaxSpareServers, y StartServersiii. MaxRequestsPerChildiv. KeepAlive y KeepAliveTimeoutv. Prueba de rendimiento
5. Compresión HTTP y caching6. Separar el contenido dinámico y el estático
Apache Tuning1. [Cargar sólo los módulos necesarios]2. Usar los módulos de multiprocessing apropiados3. DNS lookup4. Cambiando parametros
i. MaxClientsii. MinSpareServers, MaxSpareServers, y StartServersiii. MaxRequestsPerChildiv. KeepAlive y KeepAliveTimeoutv. Prueba de rendimiento
5. Compresión HTTP y caching6. Separar el contenido dinámico y el estático
1.Cargar solo modulos necesarios
● apachectl -M -> Lista los módulos corriendo en Apache
● a2dismod/a2enmod <nombre modulo> -> Desactiva/activa el módulo en cuestión
● apachectl configtest -> Testea que el módulo desactivado no ha afectado a la conf de Apache antes de relanzarlo.
Algunos de los módulos que suelen desactivarse [3]
Apache Tuning1. Cargar sólo los módulos necesarios2. [Usar los módulos de multiprocessing apropiados]3. DNS lookup4. Cambiando parametros
i. MaxClientsii. MinSpareServers, MaxSpareServers, y StartServersiii. MaxRequestsPerChildiv. KeepAlive y KeepAliveTimeoutv. Prueba de rendimiento
5. Compresión HTTP y caching6. Separar el contenido dinámico y el estático
2. Usar los módulos de multiprocessing apropiados
Cada proceso que genera varios procesos hijos, estos son agrupados y permiten usar la misma conexión.
Apache inicia varios subprocesos y cada petición es atendida por uno de estos.
Worker vs Prefork● Más estable, ya que un error crítico
solo afectaría a una petición. ● Se pueden usar módulos / extensiones
que no sean Thread-Safe.● Requiere más recursos para atender
peticiones simultáneas● Favorece el uso intensivo de PHP. Los
aceleradores de PHP no son Thread-Safe, pueden usarse.
● Prefork es la configuración predeterminada en la mayoría de instalaciones.
● Un fallo crítico afecta a varias peticiones.
● Requiere que todos los módulos/extensiones que se vayan a usar sean Thread-Safe.
● Menos recursos para atender peticiones simultáneas.
● No se pueden usar aceleradores de PHP.
● Worker solo está disponible desde Apache 2.x .
Worker vs PreforkPrefork en ● Un servidor bastante
poderoso● Manejando casi solo
contenido generado desde PHP.
● El contenido estático se sirve desde otro servidor.
Worker en ● Un servidor sencillo ● Más que todo contenido
estático. ● La mayoría del contenido
generado con PHP queda almacenado en cachés.
Apache Tuning1. Cargar sólo los módulos necesarios2. Usar los módulos de multiprocessing apropiados3. [DNS lookup]4. Cambiando parametros
i. MaxClientsii. MinSpareServers, MaxSpareServers, y StartServersiii. MaxRequestsPerChildiv. KeepAlive y KeepAliveTimeoutv. Prueba de rendimiento
5. Compresión HTTP y caching6. Separar el contenido dinámico y el estático
3. DNS lookupCada vez que hacemos una conexión a un cliente, Apache tiene que resolver el nombre del cliente, esto hace que tenga que hacer una petición al DNS. Apache tiene la posibilidad de ● crear una lista interna de hosts-ips● logresolve
Apache Tuning1. Cargar sólo los módulos necesarios2. Usar los módulos de multiprocessing apropiados3. DNS lookup4. [Cambiando parametros]
i. MaxClientsii. MinSpareServers, MaxSpareServers, y StartServersiii. MaxRequestsPerChildiv. KeepAlive y KeepAliveTimeoutv. Prueba de rendimiento
5. Compresión HTTP y caching6. Separar el contenido dinámico y el estático
i. MaxClients
+ Timeouts- RAM
MaxClients = Total RAM dedicated to the web server / Max child process size
- Timeouts
+ RAM
ii. MinSpareServers, MaxSpareServers, y StartServers
● Estos parámetros condicionarán el multiprocesamiento de Apache● No dejar muchos procesos en espera si la carga del servidor es baja.
iii.MaxRequestsPerChild y ThreadsPerChild
ThreadsPerChild. MaxRequestsPerChild.
iv.KeepAlive y KeepAliveTimeout
● Varias peticiones sobre la misma conexión TCP● Timeout: Tiempo de espera hasta cerrar la conexión● Destaca con HTML con muchas imágenes
v.Prueba de rendimiento<IfModule prefork.c>StartServers 3MinSpareServers2MaxSpareServers 3MaxClients 15MaxRequestsPerChild 5000</IfModule>
KeepAlive OnMaxKeepAliveRequests 100KeepAliveTimeout 2
● Hemos usado prefork ya que vamos a servir contenido estático
● Al usar prefork, establecemos el MaxRequestPerChild
ab -n 1000 -c 160
Apache Tuning1. Cargar sólo los módulos necesarios2. Usar los módulos de multiprocessing apropiados3. DNS lookup4. Cambiando parametros
i. MaxClientsii. MinSpareServers, MaxSpareServers, y StartServersiii. MaxRequestsPerChildiv. KeepAlive y KeepAliveTimeoutv. Prueba de rendimiento
5. [Compresión HTTP y caching]6. Separar el contenido dinámico y el estático
5.Compresión HTTP y caching
+ Ancho de banda+ Recursos necesarios
En apache se puede habilitar la compresión habilitando el módulo mod_deflate.
Para configurar estos valores usamos mod_expires y mod_headers.
Comparativa compresión
Apache Tuning1. Cargar sólo los módulos necesarios2. Usar los módulos de multiprocessing apropiados3. DNS lookup4. Cambiando parametros
i. MaxClientsii. MinSpareServers, MaxSpareServers, y StartServersiii. MaxRequestsPerChildiv. KeepAlive y KeepAliveTimeoutv. Prueba de rendimiento
5. Compresión HTTP y caching6. [Separar el contenido dinámico y el estático]
6. Separar el contenido dinámico y el estático
Podemos usar estas lineas en nuestras directivas de VirtualHostRewriteEngine OnRewriteRule “^/(.*).(jpg|jpeg|gif|png|swf|pdf|avi|mpeg|mpg|mp3)$” “http://www.yourwebsite.com/$1.$2″ [P]ProxyPassReverse / http://www.yourwebsite.com/
Esto lo podremos hacer mediante los módulos ● mod_proxy ● rewrite_module
Referencias[1] http://httpd.apache.org/docs/2.2/es/install.html[2] http://bobcares.com/blog/configuring-apache-for-maximum-performance/#COMPRS[3] http://diariolinux.com/2014/05/31/desactivando-modulos-innecesarios-en-apache/[4] http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/[5] http://httpd.apache.org/docs/2.2/programs/logresolve.html[6] http://old.zope.org/Members/ike/Apache2/osx/configure_html[7] https://drupal.org/node/215516[8] http://www.websiteoptimization.com/speed//18/18-2t.html[9] http://httpd.apache.org/docs/2.2/mod/mod_proxy.html[10] http://www.developerfeed.com/how-proxy-static-content-apache-server
top related