Два способа объявления виртуальных хостов в lighttpd

()

Многие системные администраторы знакомы с веб-сервером 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.

Приятной работы!

Ключевые слова: lighttpd, vhost.

Комментарии:

Anonymous 2013-01-06 21:15:50 (#)

Большое спасибо Вам за статью!!! Всё очень понятно! Но всё же я предпочтительней 2-ой способ (ИМХО).
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE