
mod_deflate — это модуль и набор патчей для Apache, позволяющие сжимать ответ методами gzip или deflate.
Проверяем наличие модуля:
# apachectl -t -D DUMP_MODULES |grep deflate deflate_module (shared)
Проверяем активирован ли и активируем, если нет (Ubuntu):
# a2enmod deflate Considering dependency filter for deflate: Module filter already enabled Module deflate already enabled
Или так:
# ls -l mods-enabled/ | grep defl lrwxrwxrwx 1 root root 30 Nov 17 15:11 deflate.conf -> ../mods-available/deflate.conf lrwxrwxrwx 1 root root 30 Nov 17 15:11 deflate.load -> ../mods-available/deflate.load
Файл настроек модуля — /etc/apache2/mods-enabled/deflate.conf:
<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 </IfModule> </IfModule>
Включаем сжатие для *.gz-архивов.
Редактируем файл /etc/apache2/sites-enabled/000-default.conf:
...
LogLevel debug deflate:trace3
DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
CustomLog /var/log/apache2/deflate_log deflate
...
<Directory /var/www/html>
Options -Indexes
AllowOverride All
<Files *.gz>
SetOutputFilter DEFLATE
</Files>
</Directory>
...
Проверяем синтаксис и перезапускаем Apache:
# apachectl -t && apachectl restart Syntax OK
Создадим архив:
# touch /var/www/html/arch.tar.gz
Загружаем его:
# wget localhost/arch.tar.gz -o /dev/null
Проверяем логи:
# tail /var/log/apache2/error.log ... [Wed Nov 18 08:26:57.006567 2015] [deflate:trace1] [pid 120:tid 140407648286464] mod_deflate.c(491): [client ::1:55811] Not compressing very small response of 0 bytes
И в логе deflate:
# tail /var/log/apache2/deflate_log "GET /arch.tar.gz HTTP/1.1" -/- (-%)
Сжатие 0, т.к. файл нулевого размера.
Готово.