7 votos

mod_deflate - configuración Óptima para la mayoría de los navegadores

Me preguntaba si alguien de aquí me podría ayudar a determinar la óptima configuración estándar para el uso de mod desinflar con Apache. Básicamente, mod_deflate recomienda utilizar la siguiente configuración para empezar de inmediato:

Comprimir sólo un par de tipos

AddOutputFilterByType DEFLATE de texto/html text/plain text/xml http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

Sin embargo, sólo a partir de la lectura de la doc, usted puede modificar esto para todos los navegadores que hay. Además, usted puede personalizar mod_deflate para todos los diferentes tipos de tipos mime. Me preguntaba si alguien por ahí ha experimentado con estas opciones de configuración y encontrar una configuración que es óptimo para todos los navegadores.

Otro ejemplo Apache proporciona, pero la mención de no usar si usted no entiende todas las opciones de configuración:

<Location />
# Insert filter
SetOutputFilter DEFLATE

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>

http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

Comprendo que la mayoría de los ajustes de configuración, y me gustaría configurar algo similar. No me importaría evitar la compresión de imágenes y otros medios de comunicación que ya están comprimidos. Los detalles tengo problemas con el, es entender cómo este reacciona con todos los navegadores que hay, chrome, firefox, IE, Opera, etc... Obviamente no estoy preocupado con Netscape 4.X. Espero que alguien ha probado de todo esto ya y puede ser capaz de recomendar un buen ambiente que satisface este criterio.

Me refiero a si es sólo una cuestión de usar la configuración recomendada en el doc, estoy bien con eso, pero quería comprobar sólo para estar seguro.

Sólo para dar un par de detalles adicionales. Hacemos uso de Apache como servidor para todos nuestros webservices. Por Ejemplo: la confluencia, git, gitweb, etc...

Tomcat y otros servicios que se envían a través de Apache, así que hemos configuraciones para virtualhosts, mod_proxy w/AJP, mod_ssl.

Mi empresa no cuenta con un dedicado equipo de TI así que tengo que poner mucho de esto en mi tiempo libre. Agradecería cualquier entrada puede proporcionar.

Así que acaba de decir con claridad lo que te estoy preguntando, ¿cuál es la configuración óptima para el manejo de los contenidos básicos de las necesidades a atender las solicitudes de Apache para los navegadores más populares?

Mi lista de los contenidos básicos de los tipos hasta el momento:

  • texto/html
  • text/plain
  • texto/xml
  • text/x-js
  • text/javascript
  • text/css
  • application/xml
  • application/xhtml+xml
  • application/x-javascript
  • aplicación/javascript
  • application/json

Tipos que, obviamente, no necesita ser comprimido:

  • imágenes gif, jpg, png
  • los archivos exe, gz, zip, sentarse, rar

8voto

JustJeff Puntos 6070

Me fui por delante y la investigación de este uno. Después de leer varios tutoriales y el Apache doc, yo era capaz de juntar algo sustancial, que parece que funciona bien. El uso de la lista de arriba, me puse un conjunto de reglas/declaratives que parecen manejar la compresión con el resto de tipos de contenido:

<Location />
# Insert filter
SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/x-js text/javascript text/css 
AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/x-javascript application/javascript
AddOutputFilterByType DEFLATE application/json

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI \
    \.(?:exe|t?gz|zip|bz2|sit|rar)$ \
    no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

</Location>

Para la prueba, que utilizan básicamente TamperData para Firefox y se convirtió en desinflar el registro de apache:

https://addons.mozilla.org/en-US/firefox/addon/tamper-data/

Para Apache, agregue el siguiente:

# For Testing Purposes
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio

#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log deflate

http://httpd.apache.org/docs/2.0/mod/mod_deflate.html#deflatefilternote

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: