Lighttpd
Последнее изменение этой страницы: 18:50, 30 мая 2018.
![]() | |
Разработчики: | Ян Кнешке |
---|---|
Постоянный выпуск: | 1.4.49 / 11.03.2018 |
Операционная система: | UNIX-подобные, Microsoft Windows |
Тип ПО: | Веб-сервер |
Веб-сайт |
lighttpd |
Невысокий объем требуемой памяти (по сравнению с другими веб-серверами), небольшая нагрузка на процессор и хорошая оптимизация скорости работы делают lighttpd подходящим для серверов, которые страдают проблемами высокой нагрузки, или для обслуживания статических модулей средств массовой информации (СМИ) отдельно от динамически изменяющегося контента (пример - использование для загрузки картинок и превью видео на Youtube).
Сообщества разработки таких языков, как Python, Perl, Ruby и Lua уделяют немалое внимание этому веб-серверу.
lighttpd (произносится как "lighty")-это веб-сервер с открытым исходным кодом, оптимизированный для критически важных сред, оставаясь при этом совместимым со стандартами, безопасным и гибким. Он был первоначально написан Яном Кнешке в качестве доказательства концепции проблемы c10k - как обрабатывать 10 000 соединений параллельно на одном сервере, но приобрел всемирную популярность.По другому его называют"httpd".
Содержание
Особенности
- Балансировка нагрузки Поддержка FastCGI, SCGI и HTTP-прокси
- поддержка Chroot
- Производительность механизма событий веб-сервера - select (), poll () и epoll ()
- Поддержка более эффективных схем уведомления о событиях, таких как kqueue и epoll
- Условное переписывание URL (mod_rewrite)
- TLS/SSL с поддержкой SNI через OpenSSL
- Аутентификация сервера LDAP
- Статистика RRDtool
- Загрузка на основе правил с возможностью использования сценария только для проверки подлинности
- Серверная сторона Включает поддержку (но не серверный CGI)
- Гибкий виртуальный хостинг
- Поддержка модулей
- Cache Meta Language (в настоящее время заменяется mod_magnet) с использованием языка программирования Lua
- Минимальная поддержка WebDAV
- Поддержка сервлета (AJP) (в версиях 1.5.x и выше)
- HTTP-сжатие с использованием mod_compress и нового mod_deflate (1.4.42)
- Легкий (менее 1 МБ)
- Однопроцессорный дизайн с несколькими потоками. Никаких процессов или потоков для каждого соединения.
Использование
Низкий объем памяти (по сравнению с другими веб-серверами), небольшая загрузка процессора и оптимизация скорости делают lighttpd подходящим для серверов, которые испытывают проблемы с загрузкой, или для обслуживания статических носителей отдельно от динамического контента. lighttpd - бесплатное программное обеспечение с открытым исходным кодом и распространяется под лицензией BSD. Он запускается изначально в UNIX-подобных операционных системах, а также в Microsoft Windows.
Поддержка приложений
lighttpd поддерживает внешние интерфейсы FastCGI, SCGI|SCGI и CGI, позволяя веб-приложениям, написанным на любом языке программирования, использоваться с сервером. Как особенно популярный язык, производительность PHP получила особое внимание. FastCGI Lighttpd может быть настроен на правильную и эффективную поддержку PHP с кэшами операций (например, APC). Кроме того, он получил внимание от своей популярности в сообществах Python, Perl, Ruby и Lua. Lighttpd также поддерживает WebDNA, отказоустойчивую базу данных в базе данных, предназначенную для создания веб-сайтов, управляемых базами данных. Это популярный веб-сервер для веб-фреймворков Catalyst и Ruby on Rails. Lighttpd не поддерживает ISAPI.
Производительность
Проект lighttpd начался со стремления автора реализовать веб-сервер, который мог бы выдержать одновременно 10 тысяч соединений. lighttpd использует так называемую асинхронную обработку сетевых соединений. Благодаря этому загруженность сервера (в отличие от Apache) при доступе к файлам на диске не зависит от количества текущих соединений.
В lighttpd возможно использование особых системных вызовов для повышения производительности при передаче файлов. При этом задействуются не стандартные системные интерфейсы, а специфичные для платформы вызовы ядра операционной системы, и смена контекста CPU сводится к минимуму.
Проекты, использующие lighttpd
Зачастую lighttpd (как и имеющий схожую архитектуру Nginx) используется для отдачи статического содержимого, в то время как его генерацией занимается более сложный веб-сервер.
- Яндекс — использует lighttpd в некоторых своих проектах: Карты, Маркет.
- Google — в своих проектах, в частности s.ytimg.com, который отдает все картинки для youtube.com, в том числе все превью для видео (в трех разрешениях) — использует lighttpd-yt (модификация от Google).
- Википедия — использует lighttpd как кэширующий прокси-сервер (для отдачи статического содержимого).
- WOT — использует lighttpd на своих серверах.
- Ubuntu — использует lighttpd на некоторых серверах обновлений
Lighttpd используется несколькими сайтами с высоким трафиком, среди которых Bloglines и xkcd. Он использовался в прошлом Meebo и YouTube. Фонд Wikimedia также запускает серверы Lighttpd
История создания
Проект lighttpd начался со намерения автора - немецкого разработчика MySQL Яна Кнешке (Jan Kneschke) предоставить доказательство возможности решения заинтересовавшей его так называемой проблемы 10000 соединений. Для этого был написан веб-сервер, который мог бы выдержать одновременно 10 тысяч соединений[Источник 1]. Сервис был спроектирован как один процесс с одним потоком и неблокирующимся вводом-выводом. Вместо select были применены быстрейшие обработчики событий в целевой системе: poll, epoll, kqueue или /dev/poll. В качестве системных вызовов были выбраны безэкземплярные, такие как sendfile вместо read и write. В течение нескольких месяцев lighttpd стал обрабатывать статичные файлы быстрее, чем Apache.
Следующим шагом была обработка динамических CGI-приложений, в частности PHP. Кнешке "сдул пыль" с FastCGI, который был разработан Open Market еще в первые годы существования интернета, в целях улучшения работы CGI. Вместо запуска веб-сервером той же внешней CGI-программы при каждом вызове, FastCGI по существу был демоном для предварительного запуска CGI-приложения и управления связью между ним и веб-сервером. Это было быстрее на тот момент времени, но Perl и PHP позже были внедрены в Apache в качестве модулей, которые показали даже более высокую скорость работы и получали доступ к внутренним действиям Apache по обработке HTTP. FastCGI для Apache стали пренебрегать, но после того, как он был добавлен в lighttpd и к нему подключили PHP, его производительность сравнялась или даже стала превышать ту, что показывал Apache с mod_php. В качестве дополнения, в реализацию lighttpd была добавлена автоматическая балансировка загрузки.
Первая версия была выпущена в марте 2003 года. Неожиданно сервис приобрел популярность, и его разработка была продолжена.
Производительность
lighttpd использует так называемую асинхронную обработку сетевых соединений. Благодаря этому загруженность сервера (в отличие от Apache) при доступе к файлам на диске не зависит от количества текущих соединений. В lighttpd возможно использование особых системных вызовов для повышения производительности при передаче файлов. При этом задействуются не стандартные системные интерфейсы, а специфичные для платформы вызовы ядра операционной системы, и, таким образом, смена контекста CPU сводится к минимуму.
Сервис способен автоматически балансировать нагрузку, она может, в частности, распределяться по нескольким запущенным серверам lighttpd.
Установка
Пример установки дистрибутива lighttpd под Linux (где 1.4.хх - номер версии и сборки):
# tar xvzf lighttpd-1.4.хх.tar.gz # cd lighttpd-1.4.хх # ./configure # make # make install
Пример установки lighttpd на Ubuntu
Ссылки
- Домашняя страница lighttpd
- WLMP Project LightTPD based Webserver Package / LightTPD for Windows
- Документация по web-серверу Lighttpd (version 1.3.16)
- Веб-сервер lighttpd (Перевод статьи «The lighttpd Web Server», автор Bill Lubanovic.)
- Руководство по установке и настройке Lighttpd на Arch Linux
Источник
- ↑ История создания lighttpd // lighttpd [2018]. Дата изменения: 30.01.2007. URL: http://www.lighttpd.net/story (Дата обращения: 23.05.2018).
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.