Дек 25 2008

Установка и настройка lighttpd

lighttpd позиционируется как, легкий, безопасный вебсервер. Используют в своей деятельности многие известные проекты, такие как YouTube, wikipedia. Мы построим простейший сервер, ориентированный на отдачу статических файлов. Во FreeBSD, lighttpd присутствует в портах, оттуда его и поставим:

cd /usr/ports/www/lighttpd/
make install clean

Перед сборкой вызывается диалог настройки:

┌────────────────────────────────────────────────────────────────────┐
│                   Options for lighttpd 1.4.20                      │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │        [X] BZIP2     Enable Bzip2 support                      │ │
│ │        [ ] CML       Enable Cache Meta Language support        │ │ 
│ │        [X] FAM       Enable fam/gamin support                  │ │
│ │        [ ] GDBM      Enable gdbm storage support               │ │
│ │        [ ] IPV6      Enable IPV6 support                       │ │ 
│ │        [ ] MAGNET    Enable magnet support                     │ │
│ │        [ ] MEMCACHE  Enable memory caching support             │ │
│ │        [ ] MYSQL     Enable MYSQL support                      │ │
│ │        [ ] OPENLDAP  Enable LDAP support                       │ │
│ │        [X] OPENSSL   Enable SSL support                        │ │ 
│ │        [ ] VALGRIND  Enable valgrind support                   │ │
│ │        [ ] WEBDAV    Enable WebDAV support                     │ │ 
├─└────────────────────────────────────────────────────────────────┘─┤  
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

Перечисленные настройки подойдут к большинству задач. После того, как установка будет закончена,
перейдем к настройке. Настроим виртуальный сервер www.hilik.org.ua. Конфигурационный файл /usr/local/etc/lighttpd.conf будет выглядеть так:

#Перечисляем модули, которые будет пожгружать при старте lighttpd
server.modules              = (
                               "mod_rewrite",
                               "mod_redirect",
                               "mod_alias",
                               "mod_access",
                               "mod_setenv",
                               "mod_accesslog" )
#Документ рут по умолчанию
server.document-root        = "/usr/local/www/data/"
#Описываем лог файл куда будут писаться ошибки
server.errorlog             = "/var/log/lighttpd.error.log"
#Имена файлов, которые будут отдаваться по умолчанию, если имя файла не задано в запросе
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm" )
#Метод обработки запросов
server.event-handler = "freebsd-kqueue"
#Сопоставление MIMEType расширениям файлов 
mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jar"          =>      "application/x-java-archive",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
  # default mime type
  ""              =>      "application/octet-stream",
 )
#Идентификатор сервера
server.tag                 = "lighttpd"
#Файл для записи обработанных запросов
accesslog.filename          = "/var/log/lighttpd.access.log"
#Запрещенные для отдачи имена файлов
url.access-deny             = ( "~", ".inc" )
#Расширения файлов которые надо отдавать на обработку FastCGI процессам
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
#Принимаем запросы на 80-м порту
server.port                = 80
#IP адрес на котором принимаем запросы
server.bind                = "89.252.34.107"
#PID файл
server.pid-file            = "/var/run/lighttpd.pid"
#Устанавливаем документ рут в зависимости от имени хоста
$HTTP["host"] == "www.hilik.org.ua" { server.document-root = "/home/www/hilik.kiev.ua/" }
$HTTP["host"] == "hilik.org.ua" { server.document-root = "/home/www/hilik.kiev.ua/" }
#Пользователь и группа от имени которых работает lightttpd
server.username            = "www"
server.groupname           = "www"

После того, как файл настроек будет сохранен, нужно добавить в /etc/rc.conf запись, разрешающую запуск lighttpd:

lighttpd_enable="YES"

Запускаем его:

/usr/local/etc/rc.d/lighttpd start

На этом настройка окончена.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
  • By Plastilin, 16.01.2010 @ 23:50

    Неплохо было бы добавить обработку .php
    # В модули
    «mod_fastcgi»,

    —————————

    #Настройки php
    fastcgi.server = ( «.php» =>
    ( «localhost» =>
    (
    «socket» => «/tmp/php-fastcgi.socket»,
    «bin-path» => «/usr/local/bin/php-cgi»
    )
    )
    )

  • By prolianta, 17.05.2010 @ 10:20

    Слишком ужато, где php и mysql? Неплохо было и про настройку онных написать, а то какой сайт и без mysql??

  • By hilik, 19.05.2010 @ 13:57

    Как то так получилось, что кроме отдачи статики дело не пошло.

Other Links to this Post


Украинская Баннерная Сеть