Până de curând, Apache nu a avut o concurență serioasă la open source. O analiză recentă a serverelor web, realizat de Netcraft, putem vedea ceva nou. Ca de obicei, Apache află în fruntea listei, Microsoft IIS în al doilea rând, și faimosul necunoscut - al treilea. Al patrulea este Sun Java Web Server (cunoscut anterior ca unul, fostă iPlanet, fostă Netscape). Dar numărul cinci, care deservesc aproximativ 1,4 milioane de site-uri, ceva numit lighttpd. De unde a venit asta? Vom studia istoria lighttpd, instalarea și configurarea inițială, precum și unele dintre punctele de vedere cu privire la viitorul proiectului.
Puteți pronunța numele ca lumina-TI-pi-di sau mai puțin scuipatului, Lighty. Cum ai spune / scuipă numele serverului Web, veți găsi o mulțime de informații cu privire la site-ul său web, wiki, blog sau forum. lighttpd este conceput ca un server web de înaltă performanță cu utilizare redusă a resurselor. Se folosește mult mai puțină memorie decât Apache și este de obicei mai rapid. lighttpd îmbunătățește în liniște multe site-uri grele, inclusiv YouTube, Wikipedia, Meebo, și A List Apart; veți vedea că acesta este adesea folosit în loc de Apache, împreună cu instrumente populare, cum ar fi Ruby on Rails și Trac.
Ce este în neregulă cu Apache?
În ciuda popularității sale, uneori, utilizarea Apache nu este cea mai bună soluție. Apache oferă o varietate de multi-proces Modele (MPMS) pentru utilizare în diferite medii de lucru. Modelul prefork - cel mai popular în Linux - creează un anumit număr de procese Apache la pornire și le administrează într-o piscină. Un model alternativ este muncitorul, care utilizează mai multe fire în loc de procese. Deși fluxul este mai ușor decât procesele, pe care nu le poate folosi, atâta timp cât toate serverul dvs. este sigur pentru firul (fir în condiții de siguranță). Deși Apache și mod_php - thread-safe, aceasta nu garantează că toate modulele de la terțe părți pot fi utilizate. site-ul PHP nu aprobă utilizarea de Apache 2 cu transmiterea în flux MPM; încetinește trecerea dezvoltatorilor cu Apache 1.3 pe 2.x. Un model prefork are problemele sale: fiecare proces (Apache + PHP + module terță parte) are o mulțime de memorie (30 MB nu este mai puțin frecvente). Când măriți numărul de procese concurente Apache, memoria disponibilă puteți veni rapid la capăt.
lighttpd în ceață.
Următorul pas a fost să se ocupe de aplicații dinamice (CGI), in special PHP. Kneschke a suflat praful de pe FastCGI, dezvoltat de piața deschisă în primele zile ale Internetului, în scopul de a îmbunătăți performanța CGI. În loc de un server web a fugit la fel în afara CGI-program la fiecare apel, FastCGI a fost în esență un demon de a pre-lansare, controlul CGI-aplicare și de comunicare între ea și serverul web. A fost mai rapid, dar Perl și PHP mai târziu, au fost implementate în Apache ca module care au fost chiar mai rapid și au acces la acțiunile de procesare internă Apache prin HTTP. FastCGI pentru Apache a devenit neglijată, dar după ce a fost adăugat la lighttpd și cuplat la ea PHP, performanța sa a fost egal cu sau mai mare decât cea care a aratat Apache cu mod_php. Ca supliment, o echilibrare a sarcinii automată a fost adăugată la Lighttpd realizare.
Să instalați lighttpd și împuns-l în formă de bastoane. instalare pe pagina wiki oferă exemple de binare sau de instalare de la sursă pentru diferite distribuții Linux. Pentru dezvoltatorii cu un piept păros (părul nu trebuie să fie a ta), o instalație completă de la sursă este după cum urmează:
# Tar xvzf lighttpd-1.4.13.tar.gz
Acest lucru se va instala lighttpd în / usr / local. În cazul în care construi eșuează, verificați că dezvoltarea și ZLIB pachete pcre necesare instalate pe sistemul dumneavoastră.
Dacă doriți să porniți și să opriți manual lighttpd, în avans. Și pentru a instala lighttpd ca un serviciu cum ar fi Apache, editați și setați script-ul de inițializare:
# -e Sed # 'S / FOO / lighttpd / g #' doc / rc.lighttpd> lighttpd.init
# Chmod a + rx lighttpd.init
# Cp lighttpd.init /etc/init.d/lighttpd
# Cp -p doc / sysconfig.lighttpd / etc / sysconfig / lighttpd
# Instalați -DP ./doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
# Chkconfig lighttpd pe
În aparență sintaxa fișierului de configurare lighttpd poate fi diferit de Apache. Exemple de configurare a paginilor wiki arata mai mult ca Perl (sau PHP sau Python), mai degrabă decât pe httpd.conf stil XML în Apache. Pentru un site simplu cu fișiere statice, trebuie să specificați aceleași lucruri ca și în Apache: document root, locația jurnalele de acces și de eroare, precum și numele de utilizator și de grup pentru server. Asta e opțiuni echivalente Apache (httpd.conf) și lighttpd (lighttpd.conf):
Apache:
lighttpd nu acceptă fișiere .htaccess, astfel încât trebuie să specificați toate setările din fișierul lighttpd.conf sau fișierele atașate acesteia. El înțelege fișierele de utilizator Apache pentru autentificare ușor și comune, dar fișierele grup de sprijin nu este încă pus în aplicare. Aici este un exemplu al modului de a proteja prin parolă un director la nivel înalt numit de construcții:
Apache:
AuthName „directorul meu special“
lighttpd:
auth.backend = "htpasswd"
auth.require = ( "/ construcții /" =>
"Metoda" => "de bază",