Apache 2 - Performances


These are performances tricks for Apache2.



Mod deflate: improved the bandwidth

To improve the bandwidth, you can compress pages and type of content. To do so, you need a specific module for Apache: mod_deflate

=> You can improved your bandwidth from 20 to 30%.


Mod_deflate

Enable Apache2 module:

a2enmod deflate


Create dedicated files:

touch /var/log/apache2/deflate.log
chown www-data:www-data /var/log/apache2/deflate.log
chmod 740 /var/log/apache2/deflate.log


Configuration

Edit your web server configuration file:

vim /etc/apache2/mods-available/deflate.conf


Add the following lines:

### Bandwidth optimization
<IfModule mod_deflate.c>
         <IfModule mod_filter.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/ecmascript
                 AddOutputFilterByType DEFLATE application/rss+xml
                 AddOutputFilterByType DEFLATE application/xml

                 # Logs
                 DeflateFilterNote deflate_ratio
                 LogFormat "%v %h %l %u %t \"%r\" %>s %b"
                 CustomLog /var/log/apache2/deflate.log vhost_with_deflate_info
         </IfModule>
</IfModule>


Restart your web server:

service apache2 restart


Mod expires: use the cache of your clients

Another way to improve performances and bandwidth: use the client's cache. To do so, you need a specific module for Apache: mod_expires


Mod_expires

a2enmod expires


Configuration

Edit your web server configuration file:

vim /etc/apache2/mods-available/expires.conf


Add the following lines

#### Client's cache settings
<IfModule mod_expires.c>
	ExpiresActive on
	# set the default to 24 hours
	ExpiresDefault "access plus 24 hours"
	# cache shockwave-flash for 2 weeks (days | weeks | mounths | years)
	ExpiresByType application/x-shockwave-flash "access plus 2 weeks"
	ExpiresByType flv-application/octet-stream "access plus 3 days"
	# cache common graphics for 3 days
	ExpiresByType image/jpg "access plus 2 weeks"
	ExpiresByType image/gif "access plus 2 weeks"
	ExpiresByType image/jpeg "access plus 2 weeks"
	ExpiresByType image/png "access plus 2 weeks"
	# cache CSS for 24 hours
	ExpiresByType text/css "access plus 24 hours"
</IfModule>


Reload the module (this will add a symlink to the new configuration file)

a2enmod expires


Restart your web server:

service apache2 restart