Как настроить Apache2 для поддержки сжатия HTTP ?
Как настроить Apache2 для поддержки сжатия HTTP ?
Ответы:
Для этого требуется deflate
модуль, поэтому включите его. Под Ubuntu (это то, что я использую), команда для этого a2enmod deflate
.
Затем используйте SetOutputFilter
по вашему Proxy
или Directory
директиву:
<ProxyMatch "^http://localhost:8080/($|app/)">
Order allow,deny
Allow from all
SetOutputFilter Deflate
</ProxyMatch>
Или:
<Directory /var/www>
Order allow,deny
Allow from all
SetOutputFilter Deflate
</Directory>
В качестве записи в Википедии вы ссылаетесь на заметки, вы можете использовать mod_deflate или mod_gzip . Смотрите здесь пример с mod_gzip , который я и использую.
<VirtualHost *:80>
...
DeflateBufferSize 16384
DeflateCompressionLevel 5
DeflateMemLevel 9
DeflateWindowSize 15
<Location / >
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
</Location>
...
</VirtualHost>
В зависимости от вашего размещения, поместите его в папку conf.d или extras как mod_deflate.conf:
# Enable mod_deflate (gzip)
SetOutputFilter DEFLATE
# Do not attempt to compress the following extensions
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|swf|flv|zip|gz|tar|mp3|mp4|m4v)$ no-gzip dont-vary
Перезапуск apache и mod_deflate будет происходить на всех расширениях, не соответствующих приведенному выше регулярному выражению, это уменьшает общую нагрузку на ЦП, поскольку предотвращает попытку mod_deflate сжимать формат, для которого вы увидите, что сжатие будет незначительным или отсутствует (поскольку оно уже сжато).
Чтобы увидеть, что именно сжимается, и степень сжатия, поместите это в свой
# Deflate accurate logging
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/yourdomain_deflate.log