MicroOptimizaciones Apache en CentOS

Lectura recomendada: http://httpd.apache.org/docs/trunk/mod/core.html#rlimitcpu
Luego de eso agregar a tu archivo httpd ( /etc/httpd/conf/httpd.conf)
#Limitando el tiempo de CPU
RLimitCPU 15 20
#Limitando la memoria- de 50 a 82MB
RLimitMEM 52428800 85983232
#Limitando el numero de procesos
RLimitNPROC 8 12

Apache KeepAlive
La funcionalidad de Apache KeepAlive permite (presisamente lo que dice su nombre) mantener abierta la conexión TCP entre un cliente y el servidor, lo que lleva a que se den múltiples peticiones en la misma conexión. Esto puede reducir los tiempos de carga de una página en particular en las páginas web con gran cantidad de imágenes, ya que elimina la sobrecarga de tener varias conexiones abiertas. En tu archivo de configuración de httpd busca las entradas de KeepAlive, y asegurarse de que están habilitados, lo siguiente es adaptarlo a tus necesidades, ej.:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 8

lo siguiente sería deshabilitar el HTTP TRACE method (por temas de seguridad) más info en: http://publib.boulder.ibm.com/httpserv/ihsdiag/http_trace.html
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

La idea es no limitarnos solo a apache, sino optimizar además algunos detalles de php, en nuestro php.ini setear correctamente los valores (según requerimientos) estos tiempos han funcionado bien para mi:
max_execution_time = 60     ; Maximum execution time of each script, in seconds
max_input_time = 120    ; Maximum amount of time each script may spend parsing request data
memory_limit = 80M      ; Maximum amount of memory a script may consume

3 respuesta a “MicroOptimizaciones Apache en CentOS”

  1. Con respecto a “TRACE and TRACK Requests”, la siguiente es una mejor configuración (uso mínimo de recursos)
    # Fix - Deny TRACE and TRACK Requests
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule ^ - [F,L]

    Puedes verificar que aún funciona con:
    curl -v -A "Curl" -X TRACE tudominio.com
    El resultado deberá tener en la cabecera algo como:
    HTTP/1.1 403 Forbidden
    También, para superar el posible problema de las conexiones dummy (cuando apache genera un nuevo hilo y este hace una conexión interna pero tu home es dinámica y gasta recursos innecesarios), está la siguiente configuración:
    # Fix Apache internal dummy connections from breaking [(site_url)] cache
    RewriteCond %{HTTP_USER_AGENT} ^.*internal dummy connection.*$ [NC]
    RewriteRule ^ - [F,L]

    Más info: http://wiki.apache.org/httpd/InternalDummyConnection
    Aclaración rápida: ^ hace lo mismo que .* pero no necesita recorrer todo el url en caso de urls largas.
    [F] redirecciona a tu página de forbidden
    [L] Last rule.

    Más información: httpd.apache.org/docs/2.3/rewrite/flags.html

  2. Uso de mod_deflate

    Una optimización adicional es esta, el aprovechar la característica de apache2, compresión de las peticiones, el resultado: paquetes más pequeños, que se transmiten más rápido y por ende, as conexiones tardarán menos.
    1° habilitar el módulo:
    LoadModule deflate_module modules/mod_deflate.so
    2° agregar el archivo de configuración (bien puede ser: /etc/httpd/conf.d/mod_deflate.conf )

    <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html application/x-javascript application/javascript text/javascript text/x-js text/css text/plain
    # Highest 9 - Lowest 1
    DeflateCompressionLevel 9
    # Skip browsers with known problems
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4.0[678] no-gzip
    BrowserMatch bMSIE !no-gzip !gzip-only-text/html
    </IfModule>

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *