Многие системные администраторы знакомы с веб-сервером lighttpd и любят его за поразительную лёгкость, функционал и гибкость настроек. Конфигурационные файлы этого веб-сервера напоминают скрипты, что так же добавляет гибкости настройкам. Ниже будет показано несколько различных способов описания виртуальных хостов в lighttpd.
Сразу следует отметить что всё написанное здесь в первую очередь справедливо для дистрибутивов Debian/Ubuntu и веб-сервера lighttpd версии 1.4.x.
Способ первый: не требующий дополнительных модулей
Итак, открываем в редакторе файл /etc/lighttpd/lighttpd.conf и подправляем значения параметров “server.document-root” и “accesslog.filename” на значения, которые будут использованы хостом по умолчанию (т.е. если обращение к серверу будет производиться с неизвестным именем хоста). Вполне можно оставить и значения по умолчанию. Далее переходим в самый конец файла конфигурации и добавляем примерно вот такие строки:
$HTTP["host"] == "domain.dom" { accesslog.filename = "/var/log/lighttpd/domain.dom-access.log" server.document-root = "/var/www/domain.dom" }
После чего перезапускаем веб-сервер:
invoke-rc.d lighttpd force-reload
Это пример для домена “domain.dom”. Для остальных доменов добавляются подобные секции. Преимущество этого способа в простоте и отсутствии необходимости подключения дополнительных модулей. Однако в этом случае нет возможности быстро создавать и удалять виртуальные хосты.
Способ второй: использование модуля simple-vhost
Для организации веб-серверов с небольшим количеством хостов удобно использовать модуль simple-vhost, который обладая минимальным функционалом позволяет динамически (то есть “на лету”) создавать виртуальные хосты просто создавая каталоги. Для начала подключим этот модуль, выполнив две команды::
lighty-enable-mod simple-vhost invoke-rc.d lighttpd force-reload
Далее открываем в редакторе файл /etc/lighttpd/conf-enabled/10-simple-vhost.conf и правим значения параметров “simple-vhost.server-root”, “simple-vhost.document-root” и “simple-vhost.default-host”. Назначение этих параметров вполне очевидно. Для тех же кому не очевидно – в комментариях к файла конфигурации оно очень не плохо разжёвано.
Единственный недостаток этого метода – логи всех хостов пишутся в один и тот же файл. Динамически менять имя файла логов нельзя и если уж очень нужно отделить логи какого-то хоста всё равно придётся добавлять в конфиг кострукции вида:
$HTTP["host"] == "domain.dom" { accesslog.filename = "/var/log/lighttpd/domain.dom-access.log" }
Закончив настройку нужно (само собой) перезапустить веб-сервер. Этот метод удобен на тестовом сервере для разработки различных веб-проектов, поскольку виртуальные хосты создаются просто созданием папки с именем вида: simple-vhost.server-root+имя_хоста+simple-vhost.document-root.
В любом случае это только маленький пример того, как гибко можно настраивать lighttpd.
Приятной работы!
Оригинал статьи на Yellow Leaf