La mayoría de los sitios se desea comprimir contenido para ahorrar en ancho de banda. Sin embargo, Cuando se trata de servidores apache con PHP existen dos maneras de hacerlo – con PHP o con apache. Así que es más rápido o más fácil en el servidor?

Por ejemplo, en PHP y ejecutar la siguiente función en el inicio de mis páginas para que pueda:

/**
 * Gzip compress page output
 * Original function came from wordpress.org
 */
function gzip_compression() {

    //If no encoding was given - then it must not be able to accept gzip pages
    if( empty($_SERVER['HTTP_ACCEPT_ENCODING']) ) { return false; }

    //If zlib is not ALREADY compressing the page - and ob_gzhandler is set
    if (( ini_get('zlib.output_compression') == 'On'
        OR ini_get('zlib.output_compression_level') > 0 )
        OR ini_get('output_handler') == 'ob_gzhandler' ) {
        return false;
    }

    //Else if zlib is loaded start the compression.
    if ( extension_loaded( 'zlib' ) AND (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) ) {
        ob_start('ob_gzhandler');
    }

}

La otra opción es el uso de Apache desinflar o gzip (tanto las que se muy cerca de). Para habilitar les puede agregar algo como esto a su .archivo htaccess.

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php

Ya que PHP es un lenguaje de secuencias de comandos (que debe ser cargado por PHP) quiero suponer que el apache método sería 1) más estable y 2) más rápido. Pero las suposiciones no tienen mucho uso en el mundo real.

Después de todo, usted podría suponer que, con el enorme respaldo financiero de windows ha… uh, no vamos a ir allí.

InformationsquelleAutor Xeoncross | 2009-12-07

1 Comentario

  1. 14

    Estamos corriendo… una gran cantidad de servidores web, manejo de 60M/diferenciales/día. Normalmente esto no vale la pena mencionar, pero su pregunta, parece basado en la experiencia.

    Seguiremos haciendo en apache. Lo que sale por el otro extremo es el mismo (o casi lo suficiente como para no importa) sin importar el método que usted elija.

    Elegimos apache por varias razones:

    • Cero mantenimiento, se acaba de abrir. Nadie necesita mantener cierta estructura de caso
    • Rendimiento, en nuestras pruebas, los servidores de Apache hizo el trabajo que se adaptan poco mejor.
    • Apache se aplicará el filtro de salida para todo, frente a sólo el PHP. En algunas ocasiones, hay otros tipos de contenido que se sirve en el mismo servidor, nos gustaría comprimir nuestras .y de css .js

    Una palabra de advertencia, algunos navegadores u otras aplicaciones a propósito de destrozar el cliente encabezados lo que indica que se admite la compresión. Algunos lo hacen para facilitar su trabajo en términos de la seguridad del lado del cliente (pensar en aplicaciones como norton internet security y tal). Puede ignorar este, o tratar de añadir en más casos de re-escribir las solicitudes de aspecto normal (la de los navegadores de apoyo, la aplicación de proxy o simplemente futzed para hacer su propia vida más fácil).

    Alternativamente, si usted está utilizando el flush() para enviar la salida al navegador antes, y que se está aplicando la compresión puede que necesite panel el final de la cadena con espacios en blanco para convencer al servidor para enviar los datos temprano.

    • +1: yo no soy el manejo de casi el tráfico que son, pero yo también prefiero que el servidor de manejar. Hay uno o dos advertencias: Ciertos tipos de archivos de sonido no debe ser comprimido, o reproductores de medios va a ahogar. Esto incluye el Reproductor de Windows Media con archivos mp3.
    • A pesar de que el problema era con el Media Player 8, por lo que podría haber sido solucionado por ahora.
    • En general, me comprimir sólo los elementos del tipo de texto/* luego me escoger a unos cuantos más tipos de contenido (como application/json) para conseguir el resto.

Dejar respuesta

Please enter your comment!
Please enter your name here