Lighttpd na kilku portach

Ostatnio przenosiłem serwer Icecast2 na osobną maszynkę i, co ważniejsze, na osobną domenę. Ponieważ trochę słuchaczy miało zapamiętane URL-e do radia chciałem ich bezboleśnie przekierować na nowy adres. W tym celu przygotowałem taką regułkę w Lighttpd:

$SERVER["socket"] == ":8000" {
	url.redirect = ("^/(.*)" => "http://stream.anime.com.pl:8000/$1")
}

Po zatrzymaniu Icecasta i zrestartowaniu Lighttpd wszystkie żądania HTTP wysyłane na port 8000 (na którm działał Icecast) są przekierowywane na nowy serwer. Dzięki temu słuchacze wciąż mogą używać starych URL-i.

Jednocześnie ten przykład pokazuje jak skłonić Lighty do nasłuchiwania na kilku portach jednocześnie. Można to wykorzystać np. po to, żeby uruchomić testową wersję serwisu na porcie 81 obok wersji produkcyjnej działającej na domyślnym porcie 80.

PS. Icecast2 ma funkcję przenoszenia słuchaczy, ale z tego co zrozumiałem działa ona tylko w obrębie jednego serwera. Czyli można ich przenieść na inny strumień na tym samym serwerze, ale na inny serwer już nie.

Nucleus CMS i lighttpd

Konfiguracja lighttpd dla systemu blogowego Nucleus CMS.

Nie tak dawno przenosiłem blog mojej ukochanej na własny serwer, na którym strony serwuje lighttpd. Rzeczony blog napędza Nuclesus CMS. Po skopiowaniu plików i bazy blog już właściwie działał, ale „przyjazne URL-e” (znane jako „fancy URL”) wymagały przetłumaczenia regułek z apache’owego mod_rewrite na regułki strawne dla lighty. Stosowny fragment pliku lighttpd.conf zamieszczam poniżej, fragment dotyczący regułek pogrubiłem. Oby się komuś przydało.

$HTTP["host"] =~ "^(|www\.)karniak\.com$" {
    server.document-root = "/home/karniak/www"
    accesslog.filename = "/var/log/lighttpd/karniak.com-access.log"
    url.rewrite-once = (
        "^/(item|blog)/(\d+)$" => "/index.php?$1id=$2",
        "^/(item|blog)/(\d+)/catid/(\d+)$" => "/index.php?$1id=$2&catid=$3",
        "^/category/(\d+)$" => "/index.php?catid=$1",
    )
}