Apache mod_deflate не сжимает вывод json - PullRequest
7 голосов
/ 26 января 2012

Я выполнил все шаги в нескольких руководствах, чтобы включить mod_deflate в Apache, но я все еще не вижу сжатия (в Fiddler), когда я отправляю запросы на json (через скрипт PHP) на мой локальный веб-сервер.Сжатие не требуется для моего браузера на localhost, но моя машина будет периодически экспонироваться по медленной VPN, поэтому я хотел бы использовать его.

с httpd.conf:

LoadModule deflate_module modules/mod_deflate.so (не закомментировано)

mod_deflate.so существует в Apache2 / modules

Сценарии PHP сразу устанавливают следующий заголовок при запуске: header('Content-Type: application/json');

application/json существует в Apache2/conf/mime.types

И это соответствующий раздел из httpd.conf о mime-типах, которые должны быть сжаты:

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>

Когда я отправляю запрос на сервер,Заголовки запроса включают Accept-Encoding: gzip, deflate, но ответ возвращается без сжатия.Я перезапускаю Apache после каждого изменения .conf.

Любые предложения приветствуются!

1 Ответ

11 голосов
/ 26 января 2012

Дикая догадка здесь ... может быть, добавить в качестве новой строки в конфигурации:

AddOutputFilter DEFLATE php

или добавить

application/x-httpd-php

до конца вашего существующего списка AddOutputFilterByType.

...