Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sacándole el jugo a apache

3,604 views

Published on

Cómo optimizar apache para mucho tráfico.

Licencia: CC-By
http://javieraroche.com

Published in: Technology, Art & Photos

Sacándole el jugo a apache

  1. 1. Sacándole el jugo a Apache O cómo optimizarlo para recibir mucho tráfico.
  2. 2. Apache es el webserver más popular <ul><li>50% de los sitios web usan Apache </li></ul>
  3. 3. Primeros pasos de optimización <ul><li>Eliminar módulos innecesarios. </li></ul><ul><li>Comprimir las peticiones. </li></ul><ul><li>Controlar los Headers de Caché </li></ul><ul><ul><li>Eliminar Last-Modified </li></ul></ul><ul><ul><li>Eliminar ETag </li></ul></ul><ul><ul><li>Agregar Expires </li></ul></ul>
  4. 4. Comprimir peticiones <ul><li>Paquetes más pequeños se transmiten más rápido, por tanto las conexiones duran menos tiempo. </li></ul>
  5. 5. Comprimir peticiones <ul><li>Apache 2.2 (mod_deflate): AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript </li></ul><ul><li>Apache 1.3 (mod_gzip): mod_gzip_on Yes mod_gzip_can_negotiate Yes mod_gzip_minimum_file_size 400 mod_gzip_item_include file .html$ mod_gzip_item_include mime ^application/x-javascript$ </li></ul>
  6. 6. Controlar los Headers de Caché <ul><li>Los archivos cambian muy pocas veces, sino es que nunca lo hacen, entonces ¿por qué hacer que los bajen una y otra vez? </li></ul>
  7. 7. Controlar los Headers de Caché <ul><li>Eliminar ETag y Last_Modified: <FilesMatch &quot;(ico|jpg|jpeg|png|gif|css|js)$&quot;> Header unset last-modified Header unset ETag FileETag None </FilesMatch> </li></ul><ul><li>Agregar Expires (mod_expires): ExpiresActive on ExpiresByType application/javascript &quot;access plus 1 week&quot; ExpiresByType image/jpeg &quot;access plus 1 month“ ExpiresByType image/gif &quot;access plus 1 month“ ExpiresByType image/png &quot;access plus 1 month“ ExpiresByType text/css &quot;access plus 1 week&quot; </li></ul>
  8. 8. Modelos de multiproceso en Apache 2.x : Prefork <ul><li>Múltiples procesos atienden las peticiones, un proceso por cada cliente. </li></ul><ul><li>Mucho más amigable con el uso intensivo de PHP. </li></ul><ul><li>Consume más memoria. </li></ul><ul><li>Menos capacidad de atender muchos clientes a la vez (max_clients). </li></ul>
  9. 9. Modelos de multiproceso en Apache 2.x : Worker <ul><li>Múltiples procesos con múltiples hilos atienden las peticiones, un hilo por cada cliente. </li></ul><ul><li>Problemático con los módulos no thread-safe de PHP, como los Acceleradores. </li></ul><ul><li>Consumo mucho menor de memoria </li></ul><ul><li>Mejor capacidad de manejar muchos clientes con menos recursos. </li></ul><ul><li>Ideal para contenido estático . </li></ul>
  10. 10. Prefork <ul><li>Dual QuadCore Intel Xeon 3GHz, 4GB Ram: </li></ul>
  11. 11. Worker <ul><li>AMD Athlon64 X2 Dual Core 5000+, 4GB Ram: </li></ul>
  12. 12. Recursos recomendados <ul><li>Las mejores prácticas, según Yahoo: http:// developer.yahoo.com /performance/ </li></ul><ul><li>Extensiones para Firefox: </li></ul><ul><ul><li>Firebug: http://getfirebug.com/ </li></ul></ul><ul><ul><li>Yslow: http:// developer.yahoo.com / yslow / </li></ul></ul>
  13. 13. ¡Gracias!

×