Miesięcznik informatyków i menedżerów IT sektora publicznego

Kamil Folga

Serwer WWW stworzony do szybkiej pracy

Darmowy lighttpd jest serwerem Web dla środowiska, które musi charakteryzować się wysoką wydajnością. Oryginalnie lighttpd został stworzony w celu udowodnienia koncepcji, że możliwa jest obsługa 10 000 jednoczesnych połączeń przez jeden serwer Web.

Serwer lighttpd ma niskie zapotrzebowanie na pamięć RAM, efektywnie wykorzystuje CPU, wspiera też zaawansowane funkcje, takie jak FastCGI, SCGI, Output-Compression, Auth i URL-Rewriting. Oprogramowanie jest licencjonowane na podstawie licencji BSD i może zostać uruchomione na systemie operacyjnym Linux lub Microsoft Windows. Konfiguracja serwera jest łatwa. Właściwie w kilka minut można z wykorzystaniem lighttpd przygotować serwer dla strony internetowej korzystającej z PHP i SSL.

Instalacja i pliki konfiguracji

W oparciu o dystrybucję Ubuntu 18.04 Server przeprowadzimy instalację obejmującą typowe środowisko serwera WWW z bazą danych MariaDB oraz wsparciem PHP w opcji PHP-FPM. Serwer lighttpd instalujemy poleceniem apt-get install lighttpd. Jeżeli zamierzamy obsługiwać przez serwer WWW tylko statyczne strony w formacie HTML, należy umieścić pliki w katalogu /var/www/html – i to wystarczy, aby korzystać z szybkiego rozwiązania serwującego statyczne pliki HTML. W domyślnej konfiguracji, uruchamiając usługę lighttpd, a następnie otwierając przeglądarkę stron internetowych i wpisując adres IP naszego serwera, zobaczymy stronę powitalną. 

Serwer lighttpd przechowuje pliki konfiguracyjne w katalogu /etc/lighttpd. Główna konfiguracja serwera znajduje się w pliku /etc/lighttpd/lighttpd.conf. Z kolei katalog serwera, tzw. DocumentRoot, domyślnie znajduje się w lokalizacji /var/www/html. Skrypty CGI są umiejscowione w katalogu /usr/www/cgi-bin. W celu uruchomienia możliwości uruchamiania skryptów CGI należy wykonać komendę <lighty-enabble-mod cgi>. Dzienniki zdarzeń (logi) znajdują się w katalogu /var/log/lighttpd. Rotację dzienników zdarzeń możemy skonfigurować poprzez plik /etc/logrotate.d/lighttpd. 

Konfiguracja serwera 

Cała konfiguracja lighttpd jest realizowana przez plik /etc/lighttpd/lighttpd.conf. Składnia tego pliku jest nieskomplikowana. Każda linia zawiera nazwę zmiennej oraz wartość. Jeżeli chcemy zdefiniować główny katalog serwera, należy zmienić wartość zmiennej:

server.document-root = "/var/www/html"

Ważną dyrektywą konfiguracyjną w pliku lighttpd.conf jest server.modules, która zawiera listę modułów uruchamianych podczas startu lub przeładowania serwera. Aby wyłączyć dany moduł, wystarczy dodać znak „#”, poprzedzając nim odpowiednią linię. Istnieją również inne metody włączania/wyłączania modułów, o czym piszemy niżej. Kolejna ważna zmienna konfiguracyjna to server.max-connections. Definiuje ona, ile maksymalnie połączeń będzie obsługiwanych przez serwer Web. Dodatkowo warto ustawić zmienną server.bind, określającą adres IP lub nazwę hosta, na którym będzie nasłuchiwał proces lighttpd. Jeżeli zamierzamy zmienić port, na którym nasłuchuje serwer, należy zmienić ustawienia zmiennej server.port = 80. Jeżeli natomiast zamierzamy zdefiniować lokalizację dzienników zdarzeń (dane o błędach i dostępie), należy ustawić zmienne:

server.errorlog = "/var/log/lighttpd/error.log"

server.accesslog = "/var/log/lighttpd/access.log"

Jeżeli nie chcemy wyświetlać plików danego katalogu w przypadku, gdy nie istnieje w nim plik indeksu, wystarczy wprowadzić następującą linię:

dir-listing.activate = "disable"

Ważnym elementem konfiguracji jest wskazanie, które pliki w katalogu są wyświetlane jako pierwsze po otworzeniu danej strony. Wskazujemy nazwy plików w następującej sekcji:

index-file.names = ("index.html", "index.php", \

"index.htm", "default.html", "default.htm" )

Poprawność składni pliku konfiguracyjnego możemy sprawdzić, wykonując polecenie: lighttpd -t -f /etc/lighttpd/lighttpd.conf. Jeżeli konfiguracja jest poprawna, otrzymamy informację "Syntax OK".

Moduły w lighttpd

Rozbudowę serwera o różnego typu funkcje umożliwiają moduły do rozszerzenia lighttpd. Aktywne moduły są widoczne w konfiguracji podstawowej serwera lighttpd (/etc/lighttpd/lighttpd.conf):

server.modules = (

"mod_access",
"mod_accesslog",
"mod_alias",
"mod_compress",
"mod_redirect",
)

Warto uruchamiać tylko te moduły, które są dla nas niezbędne – każdy z nich ma konkretne zapotrzebowanie na pamięć, a także stanowi potencjalne zagrożenie bezpieczeństwa. Moduły są konfigurowane przez niezależne pliki. W przypadku dystrybucji Ubuntu systemu Linux konfiguracje modułów znajdują się w dwóch katalogach wewnątrz katalogu /etc/lighttpd. W katalogu /etc/lighttpd/conf-available znajdują się pliki .conf zawierające konfigurację określonych modułów w tzw. poczekalni. Z kolei w katalogu /etc/lighttpd/conf-enable zawarte są konfiguracje uruchomionych (aktywnych) modułów. 

[...]

Autor zawodowo zajmuje się informatyką ze specjalizacją w zakresie sieci bezprzewodowych oraz systemów transmisji głosu. Publikuje w magazynach komputerowych.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma. Zapraszamy do składania zamówień na prenumeratę i numery archiwalne.
 
 

Polecamy

Biblioteka Informacja Publiczna

Specjalistyczne publikacje książkowe dla pracowników administracji publicznej

więcej