Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Lighttpd: lehký webserver

Ve spojení s web serverem se často slýchá o balíku Apache nebo IIS. I když mají tito dva konkurenti mezi sebou rozdělenou většinu webového trhu, nejsou zdaleka jedinými. Stává se, že možnost masivní konfigurace není jedinou prioritou a pokud se projekt rozrůstá a zabírá pořád víc a víc systémových prostředků, nastupuje lighttpd.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Úvod

Od tohoto mini seriálu by možná někdo očekával i srovnání s ostatními web servery, ale tomu bych se rád vyhnul. Tam, kde se nasazují Apache a IIS, se lighttpd nikdy nedostane a stejně tak to platí obráceně. Lighttpd je velmi rychlý a spolehlivý web server. Nedosahuje ovšem možností konfigurace, jakou má zmíněný Apache. Je navržen tak, aby zůstal jednoduchým a rychlým web serverem. Nasazuje se na místech, kde by Apache zahltil svoji prací celou paměť, nebo tam, kde není potřeba komplexní řešení, vystačíme si s jednoduchou konfigurací a případný výkonnostní nárůst bude spíše bonus než požadavek.

Historie

Začátky vývoje hezky mapuje pár odstavců na hlavní stránce web serveru. Když Jan Kneschke psal v roce 2003 svoji diplomovou práci a dostal se podle svých slov k té nejnudnější části, kterou bylo napsání dokumentace, rozhodl se trochu odlehčit napětí a vytvořit tzv. proof-of-concept k problému c10k popsaný Danem Kegelem. Zjistil, že když na svém počítači pustí simulaci se stovkou paralelních přístupů k web serveru Apache, ten vyčerpá veškerou paměť a přejde ke swapu. První týdny to byl pouze návrh nového web serveru, začátky implementace základních vlastností a hlavně cachování. Také byla přidána podpora pro PHP, protože ho Jan Kneschke používal ve svých projektech a dokonce dopsal i možnost rozdělení zátěže mezi další web servery. Když měl napsán tento základ web serveru, rozhodl se porovnat výkonové výsledky s paralelními přístupy s dalšími web servery a výsledky byly pro jeho web server velmi dobré.

Vývoj pokračovat dál a do dnešního dne se nezastavil. To, co začalo pouhou hrou, se stalo během posledních pár let velmi oblíbeným lehkým web serverem.

Koncept a jeho nevýhody

Ač je lighttpd velmi výkoný a ve většině případů se nestane brzdou provozu na serveru, i přes to tu ta možnost je. Na rozdíl od Apache je lighttpd jednoprocesový (single-process) a jednovláknový (single-threaded). To znamená, že operační systém prakticky nemá šanci přidělit pro lighttpd více než jedno procesorové jádro. Na první pohled tato koncepce vypadá hrozivě, ale není. V praxi je velmi časté, že webová prezentace neběží „uvnitř“ web serveru, ale má svůj vlastní proces. Lighttpd podporuje všemožná *CGI, tam se jedná vždy o jeden či více procesů/threadů a operační systém může v klidu rozdělovat čas všech jader mezi jednotlivé aplikace. Vlákna, případně více procesů ve web serveru by systému zbytečně přidělávalo režii. Lighttpd ukázalo nejen v testech, ale i v ostrém provozu (youtube.com, mininova.org, isohunt.com, wikipedia) kde se zatížení pohybuje v tisících požadavků za vteřinu, že takovýto nápor uživatelů vydrží.

Hlavní vlastnosti

Modulárnost

Veškerá pokročilá funkcionalita se rozdělila do modulů. Díky tomu lze web server optimalizovat přesně pro ty účely, kterým má sloužit. Také to přináší výhody v rozšiřování nejen vývojovým týmem, ale i samotnými uživateli, bez razantního zásahu do samotného kódu web serveru.

Rychlost

S cílem, se kterým lighttpd vznikl, se stále nerozešel a pořád se jedná o jeden z nejrychlejších web serverů, který mohou uživatelé na svých serverech nasadit.

Paměťová nenáročnost

Lighttpd vychází z jiné koncepce než Apache a jemu podobní. Proto i po několikadenním obsluhování požadavků je obsazená paměť relativně malá, řádově jednotky MB.

Cachování

Lighttpd svoji rychlost nabírá díky masivnímu internímu cachování a také díky mod_cache. Tento modul umí získávat data v pravidelných intervalech od služby poskytující dynamický obsah a servírovat ho z cache web serveru. Tím se rapidně zvýší výkon celé aplikace. Samozřejmě se tento modul nedá použít na celý projekt, ale s trochou snahy se dá velmi kvalitně optimalizovat celý webový projekt.

Jednoduchost

Jednoduchý konfigurační soubor s mnoha „bonusy“, které si popíšeme v příštích dílech, a které dělají z lighttpd velmi flexibilní nástroj, se dá dostat „pod palec“ během pár desítek minut. Lighttpd také disponuje velmi kvalitní dokumentací a s ní dokáže tento web server nastavit pro své potřeby opravdu každý.

*CGI

Největší silou lighttpd je podpora různých *CGI protokolů (cgi, fastcgi, scgi). Ty slouží ke komunikaci s externími aplikacemi jako je třeba PHP, django projekt či RoR projekt. V porovnání s Apachem, lighttpd nedisponuje alternativou k jeho mod_php, ale výkon, který tento modul nabízí, se vyrovná kombinaci lighttpd+fastcgi+php.

Generování skriptem

Veškerá konfigurace lighttpd může být vygenerována skriptem, resp. výstup skriptu bude vložen do konfiguračního souboru. To dává velké možnosti hlavě při vytváření administrace (přidávání „subwebů“, nastavování sdílení dat přes HTTP protokol atd.) nějakého projektu.

Základní konfigurace

A aby dnešní článek nebyl jen holou teorií. Nastavíme si lighttpd na servírování obsahu jednoho z adresářů na disku. Začneme samotnou konfigurací:

TIB2012

       
#moduly, které se mají načíst
server.modules = ("mod_accesslog","mod_dirlisting")

#uživatel a skupina, pod kterými pojede lighttpd
server.username            = "lighttpd"
server.groupname           = "lighttpd"
server.use-ipv6            = "enable" #povolení IPv6
server.errorlog-use-syslog = "enable" #použít syslog na logování chyb
accesslog.use-syslog       = "enable" #použít syslog na logování přístupu
server.indexfiles          = ("index.html", "index.htm")
server.document-root       = "/home/cx/share" #kde má mí web server /
server.dir-listing         = "enable" #povolit vylistování obsahu adresáře

include "mime-types.conf" 

Tohle je základ pro jednoduchý web server. Běží pod vlastním uživatelem, zapisuje do hlášení syslogu (nejjednodušší řešení) a zobrazuje obsah adresáře. Poslední řádek je závislý na distribuci. Na Gentoo funguje právě to, co jsem napsal. Jinde to bude obdobné. Tímto zápisem vložíme do konfiguračního souboru soubor mime-types.conf, který obsahuje vazby koncovka-mimetyp. Pro ukázku použití základního nastavení web serveru není nezbytný.

Závěr

Používám lighttpd na svém serveru přes rok a za tu dobu s ním nebyl jediný problém. Nastavení je otázka několika minut a v kombinaci s generováním konfiguračních souborů skriptem není problém udělat jednoduchou administraci prakticky pro jakoukoli činnost, kterou by měl web server vykonávat. V příštím díle se podíváme na pokročilou konfiguraci s podmínkami a nastavíme *CGI spojení mezi lighttpd,PHP a Pythonem.

Adam Štrauch

Adam Štrauch

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.

Školení: IP v 6 na Linuxu

Tento krátký kurz je určený speciálně pro zkušené správce sítí IPv4, kteří se chtějí seznámit s nastupujícím internetovým protokolem IPv6.

Platforma: Linux

  • Adresace
  • Link-local adresy
  • Dynamické přidělování adres
  • a další

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,67

Přehled názorů

dobry clanek
edois 21. 8. 2008 07:31
Nový
└ 
Re: dobry clanek
karotka 21. 8. 2008 09:56
Nový
 
└ 
Re: dobry clanek
Pavel Říha 22. 8. 2008 07:49
Nový
Pěkný
Xerces 21. 8. 2008 08:12
Nový
RE: Lighttpd: lehký webserver
yossarian 21. 8. 2008 10:27
Nový
├ 
RE: Lighttpd: lehký webserver
anonymní uživatel 21. 8. 2008 11:18
Nový
│
└ 
RE: Lighttpd: lehký webserver
yossarian 21. 8. 2008 11:19
Nový
│
 
└ 
RE: Lighttpd: lehký webserver
anonymní uživatel 21. 8. 2008 11:54
Nový
└ 
RE: Lighttpd: lehký webserver
smoco 21. 8. 2008 13:50
Nový
Apache neni tak spatny
sdilec 21. 8. 2008 10:38
Nový
├ 
Re: Apache neni tak spatny
VRtulnikk 21. 8. 2008 12:36
Nový
└ 
Re: Apache neni tak spatny
LENIN POWER! 21. 8. 2008 13:57
Nový
 
└ 
Re: Apache neni tak spatny
hotovson 31. 8. 2008 21:18
Nový
lighttpd
Slavko 21. 8. 2008 10:39
Nový
├ 
Re: lighttpd
anonymní uživatel 21. 8. 2008 17:01
Nový
│
├ 
Re: lighttpd
Slavko 21. 8. 2008 17:10
Nový
│
└ 
Re: lighttpdRe: lighttpd
Slavko 21. 8. 2008 22:51
Nový
└ 
Re: lighttpd
tojefuk 22. 8. 2008 17:25
Nový
RE: Lighttpd: lehký webserver
anonymní uživatel 21. 8. 2008 11:14
Nový
└ 
RE: Lighttpd: lehký webserver
dayvee 21. 8. 2008 12:51
Nový
RE: Lighttpd: lehký webserver
tomas kouba 21. 8. 2008 11:53
Nový
├ 
RE: Lighttpd: lehký webserver
Alesak 21. 8. 2008 13:09
Nový
│
└ 
RE: Lighttpd: lehký webserver
tomas kouba 21. 8. 2008 15:46
Nový
│
 
└ 
RE: Lighttpd: lehký webserver
Alesak 21. 8. 2008 16:25
Nový
│
 
 
└ 
RE: Lighttpd: lehký webserver
anonymní uživatel 21. 8. 2008 22:59
Nový
│
 
 
 
└ 
RE: Lighttpd: lehký webserver
Alesak 22. 8. 2008 02:08
Nový
└ 
RE: Lighttpd: lehký webserver
Adam Štrauch 21. 8. 2008 14:03
Nový
 
└ 
RE: Lighttpd: lehký webserver
Izak 22. 8. 2008 13:05
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem