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, т.к. файл нулевого размера.
Готово.