Olá!
Há muito tempo, compartilhei com alguns colegas que é possível servir arquivos compactados (gz) diretamente do Apache e economizar largura de banda de rede com ele.
Eu estava mais acostumado com o Nginx, então confesso que conseguir isso com o Apache foi um pouco mais complicado.
Depois de alguns ajustes na configuração do host virtual Apache, usando o modo deflate para servir os ativos compactados, tive um problema. Meus arquivos parecem estar compactados duas vezes. Pesquisando um pouco, encontrei esta resposta stackoverflow http://stackoverflow.com/a/7510773/537235 que resolve meu problema.
Se você estiver usando Rails e pré-compilar seus ativos, ele irá diminuir e compactar para você. Portanto, você não é obrigado a configurar o modo de deflate do Apache, porque você estará servindo conteúdo pré-compactado, em vez de compactar durante o tempo de solicitação, o que pode ser caro para o seu servidor.
A solução a seguir funciona bem com a configuração de host virtual de .htaccess. Não é comum para mim colocar um arquivo .htaccess dentro da pasta public / assets em uma aplicação Rails, então, eu fiz usando o host virtual.
<VirtualHost *:80>
ServerName mywebsite.com
DocumentRoot /my/rails_app/public
<Directory /my/rails_app/public>
AllowOverride all
Options -MultiViews
</Directory>
<Location /assets/>
RewriteEngine on
# Make sure the browser supports gzip encoding before we send it
# without it, Content-Type will be "application/x-gzip"
RewriteCond %{HTTP:Accept-Encoding} b(x-)?gzipb
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
</Location>
# Also add a content-encoding header to tell the browser to decompress
<FilesMatch .css.gz$>
ForceType text/css
Header set Content-Encoding gzip
</FilesMatch>
<FilesMatch .js.gz$>
ForceType text/javascript
Header set Content-Encoding gzip
</FilesMatch>
</VirtualHost>
Espero que isso ajude você também.