Select Page

Speed up your apache server with mod_deflate

Speed up your apache server with mod_deflate

Since I am facing performance problem due to the load of visitors and a badly configured server, I decide today to document my findings in this new series of articles.

The mod_deflate module provides the DEFLATE output filter that allows output from your server to be compressed before being sent to the client over the network.

Server: Strato (www.strato.de)
Operating system: SuSE / openSuSE
Requirements: root access and basic Unix knowledge

Why installing mod_deflate? is PHP gzip not enough?
PHP Gzip only compress PHP output, not unical file, like CSS, Javascipt, fixed HTML, other ressources.

1Use yast2 to install mod_deflate on the system, this will create files (*.so) in   /usr/lib/apache2-worker/ and  /usr/lib/apache2-prefork/
2Edit the file  
# vi /etc/sysconfig/apache2

and add deflate and headers (optional A)
APACHE_MODULES="deflate headers access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl   userdir php4 php5 perl     rewrite suexec"
3create a new file in /etc/apache2/conf.d/mod_deflate.conf

#vi /etc/apache2/conf.d/mod_deflate.conf

and add these lines, at the end of file, adapt all path according to your system.

<IfModule mod_deflate.c>
  # place filter ‘DEFLATE’ on all outgoing content
  #SetOutputFilter DEFLATE
  AddOutputFilterByType DEFLATE text/html text/plain text/xml

  # exclude uncompressible content via file type
  SetEnvIfNoCase Request_URI \.(?:gif|jpeg|jpg|png|rar|zip)$ no-gzip dont-vary
  SetEnvIfNoCase Request_URI \.(?:mpg|avi|mpeg|wmv|mp3|wma|ogg)$ no-gzip dont-vary
  <IfModule mod_headers.c>
    #
A properly handle requests coming from behind proxies
    Header append Vary User-Agent
  </IfModule>

  # deflate.log, log compression ratio on each request
  DeflateFilterNote Input instream
  DeflateFilterNote Output outstream
  DeflateFilterNote Ratio ratio
  LogFormat ‘"%r" %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate
  CustomLog /var/log/apache2/deflate.log deflate

  # Properly handle old browsers that do not support compression
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
</IfModule>
 

4start
# apache2-reconfigure-mpm
this recreate the file  /etc/apache2/sysconfig.d/loadmodule.conf
and restart apache automatically.
verification: View HTTP Request and Response Header with http://web-sniffer.net/

search for Content-Encoding: gzip

References:

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments

Categories

0
Would love your thoughts, please comment.x
()
x