5

Using Apache 2.0 (2.0.53) on a particular legacy system, enabling mod_deflate causes directly-served content to be gzip-encoded just fine. However, and this is my problem, content proxied from another server using ProxyPass is not getting gzip-encoded. Wireshark shows me there is no encoding header in the response and the body is in plain text.

I have another similar system, also running Apache 2.0 (2.0.52), where the proxied content IS being gzipped, and I can't find any significant difference between the configuration of the two systems.

Details: mod_deflate is being enabled using a file /etc/httpd/conf.d/deflate.conf containing:

<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript application/json
</ifModule>

The proxying is being done within the <VirtualHost> section using these lines:

ProxyPass /mtserver http://localhost:8000
ProxyPassReverse /mtserver http://localhost:8000

Can anyone point me at a possible reason for one system not compressing the proxied content?

8
  • To clarify, if you directly query the origin server the content is compressed? Sep 4, 2014 at 20:00
  • No, the origin server on localhost:8000 always supplies uncompressed. On most of my systems Apache then compresses it for me, but I can't work out why on this one system it doesn't. Sep 4, 2014 at 21:51
  • 1
    Unless you have configured your proxy to do compression, it will simply pass through what your backend is doing. Likely the other backend is serving both compressed and uncompressed content. You should either disable all compression on the backends and handle it at the proxy layer or manage compression on the backend and just let the proxy work transparently. Sep 5, 2014 at 14:15
  • The backend server is my own code (adapted from a lightweight http server), and has no compression built in. As I said, on most of my similar systems, Apache is compressing the stream fine. I just can't work out what's different on this one system - I've compared the httpd config files in detail. Sep 5, 2014 at 14:47
  • That is my point -- your proxy is not doing the compression. It is just forwarding content. Since your backend content is not compressed, then your proxied content will not be either unless specifically configure the proxy to handle the compression. Sep 5, 2014 at 14:51

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.