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í.
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:
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.