Блог gigimon'а

Установка на Debian 5 - lighttpd + mod_deflate

После переезда с 1 хостера к другому, решил сменить apache2 на Lighttpd. Т.к. VPS мой на Debian 5 и там есть только Lighttpd версии 1.4.19, в которой нету такого нужного модуля, как mod_deflate, для сжатия передаваемых данных. Данный модуль появился только с версии 1.5, в 1.4 есть лишь mod_compress, который умеет только статчиеские файлы сжимать. К счастью, патч, реализующий mod_deflate,  доступен практически ко всей ветке 1.4. В этой статье рассмотрим, как доабвить mod_deflate модуль.

Для начала, установим пакет build-essential для сборки lighttpd в .deb пакет

apt-get install build-essential

Затем надо скачать сорцы lighttpd и патча:

cd /usr/src
apt-get source lighttpd

wget http://redmine.lighttpd.net/attachments/download/632/lighttpd-1.4.19.mod_deflate.patch

Патчим:

cd lighttpd-1.4.19
patch -p1 < ../lighttpd-1.4.19.mod_deflate.patch

Теперь соберем в .deb пакет:

dpkg-buildpackage

После выполнения команды, у вас наверняка появится ошибка подобно этой:

dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 5.0.0) cdbs libssl-dev zlib1g-dev libbz2-dev libattr1-dev libpcre3-dev libmysqlclient15-dev libldap2-dev libfcgi-dev libgdbm-dev libmemcache-dev liblua5.1-0-dev dpatch patchutils pkg-config uuid-dev libsqlite3-dev libxml2-dev

Это означает, что нехватает этих пакетов для сборки. Надо их установить:

apt-get install  cdbs libssl-dev zlib1g-dev libbz2-dev libattr1-dev libpcre3-dev

После их установки, еще раз выполняем команду

build-essential

Если по окончанию программы никаких ошибок не выявится, вы должны будете увидеть в папке на 1 уровень выше множество .deb пакет (примерно такого вида)

cd ..
ls -l
rwxr-xr-x 8 root root   4096 2007-08-08 19:09 lighttpd-1.4.19
-rw-r--r-- 1 root src     861 2007-08-08 19:07 lighttpd_1.4.19-5.dsc
-rw-r--r-- 1 root src    2000 2007-08-08 19:12 lighttpd_1.4.19-5e_amd64.changes
-rw-r--r-- 1 root src  287998 2007-08-08 19:12 lighttpd_1.4.19-5_amd64.deb

Теперь установим Lighttpd:

dpkg -i lighttpd_1.4.19-5_amd64.deb

Теперь скопируем сам модуль mod_deflate, в папку модулей Lighttpd (патч не патчит make файл, поэтому надо ручками)

cp /usr/src/lighttpd-1.4.19/debian/tmp/usr/lib/lighttpd/mod_deflate.so /usr/lib/lighttpd

Проверим, установился ли модуль и видит его lighttpd:

lighttpd -V
lighttpd-1.4.19 (ssl) - a light and fast webserver
Build-Date: Oct  5 2009 01:35:25

Event Handlers:

+ select (generic)
+ poll (Unix)
+ rt-signals (Linux 2.4+)
+ epoll (Linux 2.6)
- /dev/poll (Solaris)
- kqueue (FreeBSD)

Network handler:

+ sendfile

Features:

+ IPv6 support
+ zlib support
+ bzip2 support
+ crypt support
+ SSL Support
+ PCRE support
+ mySQL support
+ LDAP support
+ memcached support
+ FAM support
+ LUA support
+ xml support
+ SQLite support
+ GDBM support

Следует обратить внимание на наличие строки bzip2, если она присутствует, то mod_deflate установился.

После этих манипуляций, надо настроить сам модуль. Для этого создаем конфиг и впишем в него нужные опции (они будут действовать для всех хостов) и включим:

nano -w /etc/lighttpd/conf-available/10-deflate.conf

#включением

deflate.enabled = "enable"

#степень компрессии

deflate.compression-level = 9
deflate.mem-level = 9
deflate.window-size = 15
deflate.bzip2 = "enable"
deflate.min-compress-size = 200
deflate.output-buffer-size = 4096
deflate.work-block-size = 512

#типы файлов, которые сжимать

deflate.mimetypes = ("text/html", "text/plain", "text/css", "text/javascript", "text/xml")

ln -s /etc/lighttpd/conf-available/10-deflate.conf /etc/lighttpd/conf-enabled/10-deflate.conf

После этого рестартим Lighttpd и проверяем с помощью Opera DragonFly или FF FireBug (ну или чем вам удобно смотреть HTTP заголовки) на предмет сжатия.

/etc/init.d/lighttpd restart

Все, после этого должно все работать :) Надеюсь это вам помогло

2008 — 2014