Alternatywa dla Apache’a – Cherokee
Nie, nie będę pisał o hrabstwach, ani o plemieniu Indian (chociaż Apache – Cherokee nawet etymologicznie są ze sobą powiązane ;)).
Mowa będzie o alternatywnym dla Apache’a demonie http – Cherokee Web Server. A trafiłem nań zupełnie przez przypadek…
Co ciekawe, też sprawnie chodzi na „biednych” maszynach (póki co, trzyma się :)).
Ostatnio pisałem o Nginksie. Więc po co znowu coś innego? Ano, zauważyłem jakiś dziwny feler w Nginksie, którego nie byłem w stanie zmusić do działania z PHP 5.2.3 (nie komunikował się z procesem FastCGI). Nie wiem, jak jest z 5.2.4, ale wówczas potrzebowałem jakiegokolwiek demona, który byłby dużo lżejszy od Apache’a.
Cherokee jest chyba mało znanym demonem, który oferuje jednak naprawdę niezłe możliwości, m. in:
- obsługa FastCGI z wbudowanym zarządzaniem procesami-dziećmi
- obsługa SSL, TLS
- posiada możliwość generowania logów kompatybilnych z formatem Apache’a (przydatne np. przy korzystaniu z Webalizera)
- obsługa wirtualnych hostów
Postawiłem go na PC ubogim w RAM (128MB + MySQL) i muszę przyznać, że jestem bardzo pozytywnie zaskoczony. Niestety, nie robiłem z nim prób przeciążeniowych, ale dla porównania przydatne mogą być benchmarki na stronie projektu.
Jego konfiguracja jest IMHO dużo prostsza niż w przypadku nginksa. Co ważne, Cherokee sam startuje procesy FastCGI, co uwalnia nas od konieczności pisania skryptów odpalających interpretery.
Instalacja i konfiguracja
…będzie łatwa dla każdego, kto ma pojęcie, jak kompilować pakiety w Linuksie. Oczywiście, można jeszcze posłużyć się binarkami.
Kompilacja
Jak podaje oficjalna dokumentacja, wystarczą standardowe pakiety służące do „wytwarzania” – automake, autoconf i jakiś kompilator C. Ściągamy najnowsze archiwum i tar -xzf cherokee-x.x.x.tar.gz i logujemy się jako root.
Jeśli nam zależy na tym, aby jak najszybciej postawić serwer, bez zbędnego zagłębiania się w prefiksy, itp, to wystarczą trzy magiczne komendy: ./configure && make && make install. Tyle z kompilacji. ;]
Opcje do ./configure są raczej typowe (poza kilkoma charakterystycznymi, o nich po wywołaniu komendy ./configure –help.
Po pomyślnej kompilacji (no, na 95% ;]), przechodzimy do kolejnego etapu.
Podstawowa konfiguracja
W zależności od tego, z jakim prefiksem skompilowaliśmy serwer, szukamy katalogu z konfiguracją. W przypadku, gdy skorzystaliśmy z opcji domyślnych, będzie to /etc/cherokee. Struktura podkatalogów i składnia plików jest bardzo podobna do tej znanej z Apache’a, więc fani Indian poczują się jak u swoich. ;]
W rzeczywistości, potrzebujemy tylko podłączyć obsługę PHP pod działający serwer. Wszystko sprowadza się do dopisania kilku linijek do pliku opisującym konkretny serwis (np. katalog cherokee/sites-enabled/default) bądź dla wszystkich (wtedy dopisz to do katalog cherokee/cherokee.conf):
Extension php, php3, php4 {
Handler fcgi{
Server localhost:8282{
Env PHP_FCGI_MAX_REQUESTS "100"
Env PHP_FCGI_CHILDREN "5"
Interpreter "/usr/local/bin/php-cgi -b 8282"
}
}
}
Przydałoby skompilować PHP z obsługą FastCGI (parametr –enable-fastcgi).
Teraz małe omówienie. Pierwsza linijka, otwierająca blok, definiuje rozszerzenia, dla których serwer ma wykorzystywać zdefiniowany proces FastCGI. Liczba 8282 wskazuje, przez który port mają komunikować się z sobą PHP i Cherokee. Wpisujemy jakiś nieużywany. ;]
Zmienne PHP_FCGI_* już opisałem przy okazji omawiania instalowania Nginksa.
Aby demon startował przy bootowaniu, kopiujemy plik cherokee z katalogu contrib rozpakowanych źródeł do /etc/init.d i przyznajemy prawa do uruchomienia (chmod aog+x cherokee).
Teraz pozostało utworzyć symlinka do któregoś poziomu uruchomieniowego (w Ubuntu: update-rc.d cherokee defaults 90 2).
Podsumowanie
Cherokee jest naprawdę ciekawym demonem, wartym uwagi każdego admina. Tak jak Apache, posiada możliwość rozbudowy poprzez moduły, przepisywanie URL-i (ReWrite). Niestety, tak samo jak Nginx, nie posiada obsługi plików .htaccess.
Pomimo to, uważam Cherokee za bardzo dobry demon. ;]
jest juz nginx 0.6.20 przynajmniej w gentoo niestabilny, ale moze juz to poprawili? Jak bede mial chwilke cxasu to sie pobawie … poki co nie chce mi sie. A cherooke sprawdze tez
… Co do testow obciazeniowych … kiedys myslalem, ze trzeba bedzie je zrobic ale poki co nie chce mi sie … mam zabawki w sumie do tego
ale … czasu nie.