I am running Debian and Apache/2.2.22 I have gzip enabled, and I would like to know, what is my compression level and how to change it. I know this can be achieved editing php.ini, but I would like to configure it in apache. How can it be done?
4 Answers
You can adjust the compression level by simply adding DeflateCompressionLevel.
DeflateCompressionLevel 9
This line of code can range from 1 to 9, 9 being the best compression method. By default 9 is used and there is rarely any reason to specify a compression level unless your CPU usage is high due to high website usage.
Believe it or not but the documentation for mod_deflate has this information in it. In particular DeflateCompressionLevel directive is your friend. You can set the level between 1 (low) and 9 (high). It also says in the documentation that the default is zlib's default compression level.
The zlib documentation says that the default compression level is 6.
-
Where do I add this DeflateCompressionLevel? I tried to add it to apache.conf and restart apache but didn't change anything.– FirzeJun 25, 2014 at 10:42
-
@Firze the documentation tells you all you need to know. I suggest that rather than having me read it for you, you educate yourself in it's usage.– user9517Jun 25, 2014 at 10:48
With Iain's help I figured out there is mod_deflate and I have to add deflatecompressionlevel in /etc/apache2/mods-available/deflate.conf
After the change my deflate.conf looked like this:
<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>
As a complement to accepted answer you could also use apache's filesMatch directive to compress all responses rather than compressing them by type:
<filesMatch "\.*$">
SetOutputFilter DEFLATE
</filesMatch>
DeflateCompressionLevel 7 # I prefer to use 7 for less CPU consumption on traffics
DeflateMemLevel 9
DeflateWindowSize 15