Programuotojo Remigijaus Jarmalavičiaus tinklaraštis

Informacinės technologijos, programavimo įrankiai, atviro kodo projektai, knygos ir kiti programuotojo straipsniai.

Migravimas iš Apache į Lighttpd (I dalis)

Vos prieš pusmetį migravau prie kito WEB serverio – Lighttpd. Seniau naudojau populiariausią pasaulyje Apache serverį, tačiau vieną dieną nusprendžiau – reikia išbandyti ką nors naujo (žinoma, kad problemų trūko!).

Kodėl nusprendžiau Lighttpd? Pažiūrėjęs įvairias statistikas buvau nustebęs, kad gali būti greitesnis serveris nei Apache. Žinoma, kiek statistikoje buvo tiesos - nežinau, nes tikrai ne viskas yra taip, kaip kūrėjai visada žada. Bet realiai, nenusivyliau, migruoti buvo verta.

Dalykas, kuris mane tikrai šokiravo – labai greitas serverio persikrovimas. Apache serveris su 18 tinklapių persikraudavo per 2-4 sekundes, o tai, turint gerą lankomumą – yra per daug. Aišku, galima daryti kaip daro įvairios įmonės – perkrauti serverį 4 nakties, kada lankomumas teoriškai ir praktiškai yra mažiausias. Bet man tai tikrai nėra priimtina. Taigi, Lighttpd su tomis pačiomis svetainėmis persikrauna per… Sekundės dalį! Taip tikrai, nė nepajusite, kad serveris buvo perkrautas.

Jarmalavicius.lt svetainės laikomumas pagal valandas

Mano svetainės lankomumas – 4 val. nakties lankomumas mažiausias, tačiau keltis tada ir perkraudinėti serverį – tikrai ne man...

Apache visada turėjo vieną labai didelį trūkumą: jeigu turite daug tinklapių ir kiekvienas domenas turi atskirą konfigūraciją, tai jeigu įvelsite klaidų konfigūracijoje, tai jums brangiai kainuos. Pirmiausiai – nepasileis Apache. Aišku, klaidos bus įrašytos į žurnalo failą (log'ą), tačiau sugaišite laiko, kol į jį pažiūrėsite ir bėgsite atgal į konfigūraciją tvarkyti. O su Lighttpd viskas daug paprasčiau. Įvėlėt klaidą – ramiai, serveris pasileis, visos svetainės veiks išskyrus tą, kurios konfigūracijoje įvelta klaida. Juk nuostolis tikrai mažesnis, nei, kad visos svetainės neveiktų, taip?

Lighttpd konfigūraciniai failai – gėris! Lengvai ir paprastai viskas apsirašo. Daug paprasčiau negu Apache konfigūracijos. Panašumas tarp abiejų web serverių yra tas, kad galima išjungti nereikalingus modulius ir sutaupyti tūkstantąją sekundę perkraudinėjant serverį... Na, šitoje vietoje gal atminties naudojimą sumažinsite.

Apache vs. Lighttpd dokumentacija – lygiosios. Tikrai tiek viena, tiek kita nepriekaištinga.

PHP ir Python paleidimas ant bet kurio serverio – lygiosios. Tiesa, abi sistemos veikia kiek skirtingai. Lighttpd viską valdo per fcgi, o tai greičio tikrai gerokai priduoda ant ilgiau trunkančių operacijų (išmėginta praktiškai).

Tiek Lighttpd, tiek Apache2 užima praktiškai vienodai. Žinoma, priklauso nuo to ką papildomai instaliuosi. Nes vien tik web serverio niekada neužtenka.

Tiesa, Python ir Apache2 bendravimas man labiau patiko, nes teko susidurti su Django dokumentacijos klaida, kurioje parašyta, kad tam tikrų failų kurti nereikia, norint paleisti Django ant Lighttpd. Deja, po visos dienos gaišaties, sukūriau kelis failus ir tik tada svetainė pradėjo veikti. Bet klaidas daro visi, nėra ko pykti...

Apache2 prieš Lighttpd užklausų per sekundę

PHP programuotojai, norėdami paleisti savo web aplikaciją turės ieškotis „priedų“, kurie leistų PHP interneto svetaines paleisti ant LightHttpd. Vienas tokių priedų būtų php-fpm.

O Python aplikacijoms leisti reikės greičiausiai konfigūruoti CGI arba WSGI. Priklauso nuo to kokiu framework'u programuojate.

Kitoje straipsnio dalyje – greičio statistika. Šiame pavyzdyje matome Apache ir Lighttpd užklausų apdorojimą per sekundę grafikus (requests per second). Statistika bus iš mano svetainių.