Compressing web pages with mod_deflate
mod_deflate module allows the Apache2 web service to compress files and deliver them to clients (browsers) that can handle them. With
mod_deflate you can compress HTML, text or XML files by up to 70% of their original sizes. Thus, saving you server traffic and speeding up page loads.
- Compressing files will increase load on your server, but it is a small tradeoff considering your client's connection times will decrease significantly.
- This will not exclude users with older browsers that cannot handle compressed content. The browser negotiates with the server before any file is transferred, and if the browser does not have the capability to handle compressed content, the server delivers the files uncompressed.
mod_deflatehas replaced Apache 1.3's mod_gzip in Apache2.
This article shows how to enable mod_deflate globally across all the domains on your (dv) server. Should you only wish to enable for a single domain you'd need to add the
BrowserMatchrules below to the VirtualHost section in your configuration.
- You must have SSH access set up for root or a sudo user.
READ ME FIRST
This article is provided as a courtesy. Installing, configuring, and troubleshooting third-party applications is outside the scope of support provided by (mt) Media Temple. Please take a moment to review the Statement of Support.
Make sure that
mod_deflateis enabled on your server. Your (dv) server should have it enabled by default. If the following command returns a line with a "#" at the beginning you will have to remove(uncomment) the "#" character using vi or the perl command below:
grep 'mod_deflate' /etc/httpd/conf/httpd.conf
If the result was LoadModule deflate_module modules/mod_deflate.so, you can continue. If the result was #LoadModule deflate_module modules/mod_deflate.so, please run the following command:
perl -pi -e 's/# LoadModule mod_deflate/LoadModule mod_deflate/g' /etc/httpd/conf/httpd.conf
Now that we have verified that
mod_deflateis in fact being loaded by Apache, we must configure the module. First, backup your existing conf file in case you need to revert back:
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
Using vi, we will edit our Apache conf file and add the following lines at the very bottom of the file, making sure they are separated from any other configurations:
# # Deflate output configuration # AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0 no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Save your file. Now, we need to check that Apache likes our changes using the apachectl command:
You should see a Syntax OK message. If not, please check your file to make sure you modified the file correctly. Next, we need to restart apache using the same apachectl command:
You have now enabled mod_deflate on your (dv) server! You can see whether the changes are in effect using the following tool at http://whatsmyip.org/mod_gzip_test/.
Here is a quick before and after for a default Plesk index page for a domain. You can clearly see how this can benefit sites with rich content.