Назад | Перейти на главную страницу

Как установить уровень сжатия apache 2.2 gzip?

Я использую Debian и Apache / 2.2.22. У меня включен gzip, и я хотел бы знать, каков мой уровень сжатия и как его изменить. Я знаю, что этого можно добиться, редактируя php.ini, но я хотел бы настроить его в apache. Как это сделать?

Вы можете настроить уровень сжатия, просто добавив DeflateCompressionLevel.

DeflateCompressionLevel 9

Эта строка кода может находиться в диапазоне от 1 до 9, причем 9 - лучший метод сжатия. По умолчанию используется 9, и редко есть причина указывать уровень сжатия, если только ваш процессор не загружен из-за высокой загрузки веб-сайта.

Хотите верьте, хотите нет, но документация для mod_deflate содержит эту информацию. В частности DeflateCompressionLevel директива - ваш друг. Вы можете установить уровень от 1 (низкий) до 9 (высокий). В документации также говорится, что по умолчанию используется уровень сжатия zlib по умолчанию.

В zlib документация говорит, что уровень сжатия по умолчанию - 6.

С помощью Иана я понял, что есть mod_deflate и я должен добавить deflatecompressionlevel в /etc/apache2/mods-available/deflate.conf

После изменения мой deflate.conf выглядел так:

<IfModule mod_deflate.c>
          # these are known to be safe with MSIE 6
          AddOutputFilterByType DEFLATE text/html text/plain text/xml

          # everything else may cause problems with MSIE 6
          AddOutputFilterByType DEFLATE text/css
          AddOutputFilterByType DEFLATE application/x-javascript application/javascript application$
          AddOutputFilterByType DEFLATE application/rss+xml
          DeflateCompressionLevel 9
</IfModule>

В качестве дополнения к принятому ответу вы также можете использовать директиву apache filesMatch для сжатия всех ответов, а не их сжатия по типу:

<filesMatch "\.*$">
    SetOutputFilter DEFLATE
</filesMatch>
DeflateCompressionLevel 7  # I prefer to use 7 for less CPU consumption on traffics
DeflateMemLevel 9
DeflateWindowSize 15