La mayoría de los sitios quieren comprimir su contenido para ahorrar ancho de banda. Sin embargo, cuando se trata de servidores apache que ejecutan PHP, existen dos formas de hacerlo: with PHP o apache. Entonces, ¿cuál es más rápido o más fácil en su servidor?Comprimir contenido con PHP ob_start() vs Apache Deflate/Gzip?
Por ejemplo, en PHP funciono con la siguiente función en el inicio de mis páginas que les permitan:
/**
* 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');
}
}
El other option es utilizar Apache deflate or gzip (tanto las que están very close). Para habilitarlos, puede agregar algo como esto a su archivo .htaccess.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
Desde PHP es un lenguaje de script (que debe ser cargado por PHP) yo asumiría que el método Apache 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, supondrías que con las enormes ventanas de respaldo financiero tiene ... uh, no iremos.
+1: No estoy manejando casi el tráfico que usted es, pero yo también prefiero que el servidor lo maneje. Hay una o dos advertencias: Ciertos tipos de archivos de sonido no se deben comprimir, o los reproductores multimedia se ahogarán con ellos. Esto incluye Windows Media Player con archivos mp3. – Powerlord
Aunque ese problema fue con Media Player 8, por lo que podría haberse solucionado por ahora. – Powerlord
En general, comprime solo los elementos del tipo text/*, luego selecciono algunos tipos de contenido más (como application/json) para obtener el resto. – preinheimer