Apache mod_deflate not compressing json output
Asked Answered
M

1

8

I've followed all the steps in multiple tutorials to enable mod_deflate in Apache but I'm still not seeing compression (in Fiddler) when I issue requests for json (via PHP script) to my local web server. Compression isn't necessary for my browser to localhost but my machine will be periodically exposed over a slow VPN so I would like to use it.

from httpd.conf:

LoadModule deflate_module modules/mod_deflate.so (not commented-out)

mod_deflate.so exists in Apache2/modules

PHP scripts immediately set the following header when run: header('Content-Type: application/json');

application/json exists in Apache2/conf/mime.types

And this is the relevant section from httpd.conf on the mime-types that should be compressed:

Alias /mapguide "C:/Program Files/OSGeo/MapGuide/Web/www/"
<Directory "C:/Program Files/OSGeo/MapGuide/Web/www/">
  AllowOverride All
  Options All -Indexes
  Order allow,deny
  Allow from all

...

  # Content compression
  AddType text/javascript js jgz
  AddOutputFilterByType DEFLATE text/javascript application/json text/html

  RewriteEngine on
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
</Directory>

When I issue a request to the server the request headers include Accept-Encoding: gzip, deflate, but the response comes back uncompressed. I have restarted Apache after every .conf change.

Any suggestions very welcome!

Matthiew answered 25/1, 2012 at 20:7 Comment(0)
S
11

Wild guess here... maybe add as a new row in the config:

AddOutputFilter DEFLATE php

or add

application/x-httpd-php

to the end of your exising AddOutputFilterByType list.

Stanwin answered 25/1, 2012 at 20:30 Comment(2)
Can you confirm that it's successfully compressing other stuff, like static pages?Stanwin
that very good question made me realise I was being an idiot - before I made the change you suggested I had set Fiddler to auto-decode all responses, so it was always showing uncompressed. The change in your answer solved the problem.Matthiew

© 2022 - 2024 — McMap. All rights reserved.