Я использую 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