Compile Apache with mod_deflate
cd /usr/local/src
rm -Rf httpd-2.0.63
tar -xvjf httpd-2.0.63.tar.bz2
./configure --prefix=/usr/local/apache.2.0.63-deflate --enable-rewrite --enable-ssl --with-mpm=prefork --enable-auth-digest --enable-ssl --enable-deflate --enable-headers --disable-include --disable-env --enable-status --disable-asis --disable-cgi --disable-negotiation --disable-autoindex --disable-imap --disable-actions --disable-userdir --disable-alias && make && make install
Copy old configuration files
cp -fa /usr/local/apache/conf/* /usr/local/apache.2.0.63-deflate/conf/
cp -fa /usr/local/apache/logs/* /usr/local/apache.2.0.63-deflate/logs/
cp -fa /usr/local/apache/modules/* /usr/local/apache.2.0.63-deflate/modules/
Create a file called /usr/local/apache.2.0.63-deflate/conf/deflate.conf with the following content:
##----------------------------
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
##----------------------------
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
DeflateCompressionLevel 9
DeflateFilterNote Ratio ratio_info
Add the following line to /usr/local/apache.2.0.63-deflate/conf/httpd.conf
LogFormat "\"%h\",\"%l\",\"%u\",\"%t\",\"%r\",\"%>s\",\"%b\",\"%{Referer}i\",\"%{User-Agent}i\",\"%{Cookie}i\",\"%{ratio_info}n%%\"" combineddeflate
In /usr/local/apache.2.0.63-deflate/conf/httpd.conf
Change:
Include conf/secure.conf
Include conf/httpd-hummy.conf
To:
Include conf/secure.conf
Include conf/deflate.conf
Include conf/httpd-hummy.conf
In /usr/local/apache.2.0.63-deflate/conf/httpd-hummy.conf for ALL virtual hosts change:
Change:
CustomLog "|/usr/local/sbin/cronolog /home/ulysse/logs/apache/%Y/%m/%Y-%m-%d.bf2.acc.log" combinedcookie
To:
CustomLog "|/usr/local/sbin/cronolog /home/ulysse/logs/apache/%Y/%m/%Y-%m-%d.bf2.acc.log" combineddeflate
Check new apache syntax
/usr/local/apache.2.0.63-deflate/bin/apachectl -t
Substitute the current apache
cd /usr/local
/etc/init.d/apache stop
rm apache
ln -s apache.2.0.63-deflate apache
/etc/init.d/apache start
Rollback
Put previous Apache config in place and restart
/etc/init.d/apache stop
cd /usr/local
rm apache
ln -s apache.2.0.63 apache
/etc/init.d/apache start
Important There is a bug in mod_jrun. In order to compress html and xml returned by cfm pages, the connector source has to be changed following these intructions:
http://www.ghidinelli.com/2007/11/09/make-mod_deflate-work-reliably-with-mod_jrun-and-coldfusion-mx/
And then compiled following these intructions:
http://newfish.local:8111/trac_bf/wiki/Compile%20jrun%20connector
After doing this, you will have to fix AWSTATS