2010-08-05 19 views
2

我有一臺配置了(由mod_jk)通過Apache Httpd服務器工作的tomcat服務器。如何在mod_jk代理應用服務器的某些響應頭中禁用Apache中的壓縮

Apache Httpd服務器壓縮(通過mod_deflate)發送給瀏覽器的所有文本/ html。

一些jsp頁面是交互式的且長時間運行,即在執行期間顯示進度或日誌。 如果啓用壓縮,則這些頁面上的所有文本都會出現在頁面執行結束時。

我希望能夠在JSP頁面中設置一些響應頭,例如

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

而在apache httpd的這必須導致通過設置無gzip的環境變量禁用壓縮, 例如。

也許還有其他方法嗎?

回答

0

測試最近的設置(Apache的httpd的2.2.16下,Tomcat 6.0.29,mod_jk的1.2.30,tcnative- 1.DLL)。 沒有這樣的問題(它可能仍然存在使用Apache httpd 2.0.x)。

在jsp中使用response.flushBuffer()或out.flush()時,通過mod_jk將flush數據包發送到Apache 。這反過來創建了APR沖刷桶,通過收縮 模塊接收並迫使它將壓縮緩衝區刷新到瀏覽器。

所以響應是COMPRESSED AND INTERACTIVE。

P.S.但是,我已經創建了相關的補丁,它對來自應用服務器的X-nogzip頭進行響應。設置爲X-nogzip:1以禁用壓縮。

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

0

我不認爲這是可以通過HTTP頭,因爲這個頭只用於告訴客戶如何表現。你不得不告訴Apache。

但可以使用.htaccess文件,如果這是一個選項來禁用它:

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

.htaccess文件不能在Tomcat的Web應用程序中使用 – huksley 2010-08-05 11:47:39

2

我使用mod_layout的頭添加到頁面。當頁面通過mod_jk從tomcat進入時它有問題。它在gzipped二進制代碼之前添加純文本標頭,損壞gz文件。它似乎有非常差的文件,但除了壓縮問題外,還做得很好。

不幸的是,

重寫規則。 - [E = no-gzip:1]

對我不起作用。

也沒有:

AddOutputFilterByType DEFLATE text/html的文本/純文本/ XML

該做的工作:

  1. 啓用mod_headers中

  2. 添加行到你的VirtualHost

    RequestHeader取消設置的Accept-Encoding

更多mod_headers中: http://httpd.apache.org/docs/2.0/mod/mod_headers.html

我mod_layout從Ubuntu的軟件包管理器來了,但它也是在這裏: HTT號碼:// download.tangent.org/

這裏是我第一次閱讀mod_layout的頁面: http://www.linuxjournal.com/article/4334

相關問題