Сжимаем трафик lighttpd с помощью mod_compress | FreeBSD, Lighttpd
По дефолту лайти не сжимает файлы которые отдает. Настроим модуль mod_compress который позволит отдавать клиентам сжатые версии файлов (css, xml, javascript, html, txt).
Правим файл modules.conf (раскомментируем строку):
##
## mod_compress
##
include "conf.d/compress.conf"
Далее смотрим конфиг модуля, ссылку на который мы только что расомментировали. Обращаем внимание на:
compress.cache-dir = cache_dir + "/compress"
compress.cache-dir – задается в lighttpd.conf:
##
## Cache for mod_compress
##
## used in:
## conf.d/compress.conf
##
var.cache_dir = "/var/cache/lighttpd"
По умолчанию во FreeBSD директории кэша нет – создаем руками и даем права на чтение-запись юзеру под которым работает лайти.
Далее правим строку (в compress.conf):
compress.filetype = ("text/html", "text/css", "text/xml", "text/javascript")
Добавляем типы файлов которые хотим кэшировать.
Перезапускаем lighttpd и смотрим /var/cache/lighttpd/compress
После обращений к серверу мы обнаружим в директории появятся папки со сжатыми версиями файлов которые сервер отдает клиентам. Периодически эти файлы придется чистить. Строка для задания по крону – что-то вроде:
find /var/cache/lighttpd/compress -type f -atime +30 -print0 | xargs -0 -r rm
PS: Традиционно в описании по настройке mod_compress в сети упоминают о том как включить сжатие на уровне php. Поддержим традицию. Правим php.ini
zlib.output_compression = On
zlib.output_handler = On