Конфигурация Apache 2

# выставляем заголовок Content-Encoding: gzip
AddEncoding       gzip .gz
# с самого начала включаем gzip для текстовых файлов
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
# и для favicon.ico
AddOutputFilterByType DEFLATE image/x-icon
# также для CSS- и JavaScript-файлов
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# далее устанавливаем максимальную степень сжатия (9)
# и максимальный размер окна (15). Если сервер не такой мощный,
# то уровень сжатия можно выставить в 1, размер файлов при этом
# увеличивается примерно на 20%.
DeflateCompressionLevel 9
DeflateWindowSize 15

# отключаем сжатие для тех браузеров, у которых проблемы с
# его распознаванием:
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch Konqueror no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# указываем прокси-серверам передавать заголовок User-Agent для
# корректного распознавания сжатия
Header append Vary User-Agent

# запрещаем кэширование на уровне прокси-сервера для всех файлов,
# для которых у нас выставлено сжатие, 
<FilesMatch .*\.(css|js|php|phtml|shtml|html|xml)$>
        Header append Cache-Control: private
</FilesMatch>

# включаем кэширование для всех файлов сроком на 10 лет
ExpiresActive On
ExpiresDefault "access plus 10 years"

# отключаем его для HTML-файлов
<FilesMatch .*\.(shtml|html|phtml|php)$>
        ExpiresActive Off
</FilesMatch>