Cómo desactivar la compresión en Apache en alguna cabecera de la respuesta del servidor de aplicaciones proxy mod_jk

StackOverflow https://stackoverflow.com/questions/3414243

Pregunta

Tengo un servidor Tomcat configurado (por mod_jk) de trabajo a través del servidor Apache Httpd.

Las compresas servidor Apache Httpd (por mod_deflate) todo el texto / html enviado al navegador.

Algunas páginas JSP son interactivos y de larga data, es decir, el progreso de visualización o registro durante la ejecución. Si la compresión activada, todo el texto en estas páginas se produce al final de la ejecución de la página.

Me gustaría tener la capacidad de poner en JSP página alguna cabecera de respuesta, por ejemplo.

<% response.setHeader("X-Compress", "0"); %>

Y en Apache Httpd esto debe conllevar la inhabilitación de compresión, por ejemplo, por ajuste no-gzip variable de entorno.

Tal vez hay otros enfoques?

¿Fue útil?

Solución 3

Probado en la configuración reciente (Apache httpd 2.2.16, 6.0.29 Tomcat, mod_jk 1.2.30, tcnative-1.dll). No hay tal problema (que todavía puede existe usando Apache httpd 2.0.x).

Cuando se utiliza response.flushBuffer () o out.flush () en JSP, paquete ras se envía Apache a través de mod_jk. Esto a su vez crea cubo de abril ras que se recibe por desinflado módulo y se produce su búfer de compresión a ras del navegador.

Así que la respuesta es comprimido e interactivo.

P.S. Sin embargo, I`have creado parche relevante que reacciona sobre el encabezado de X-nogzip de servidor de aplicaciones. Se establece en X-nogzip:. 1 a desactivar la compresión

http : //huksley.sdot.ru/wp-content/uploads/2010/09/mod_jk-1.2.30-x-nogzip-patch.zip

Otros consejos

Estoy utilizando mod_layout para agregar un encabezado de la página. Tiene problemas cuando la página proviene de Tomcat a través mod_jk. Se añade la cabecera de texto sin formato antes de que el código binario gzip, corrompiendo el archivo gz. Parece tener muy mala documentación, pero hace un buen trabajo que no sea el problema de compresión.

Por desgracia,

  

RewriteRule. - [E = no-gzip: 1]

no funcionó para mí.

Ni tampoco:

  

texto AddOutputFilterByType DESINFLE / html texto / texto / xml

Esto hizo el trabajo:

  1. Habilitar mod_headers

  2. añadir una línea a su VirtualHost

      

    RequestHeader unset Accept-Encoding

Más sobre mod_headers: http://httpd.apache.org/docs/2.0/mod/mod_headers.html

Mi mod_layout vino de gestor de paquetes de Ubuntu, pero también es aquí: htt p: //download.tangent.org/

Y aquí está la página en la que por primera vez acerca mod_layout: http://www.linuxjournal.com/article/4334

No creo que es posible a través de HTTP de cabecera, para este encabezado sólo se utiliza para decirle al cliente cómo comportarse. No obstante, usted tiene que decirle a Apache.

Sin embargo, puede deshabilitarlo usando un archivo .htaccess, si eso es una opción:

RewriteRule . - [E=no-gzip:1]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top