petak, 19 aprila, 2024
Sam svoj majstor

Lighttpd (2. deo) – Naprednije konfigurisanje Lighttpd servera

Autor: Vladimir Cicović

U prvom delu smo postavili osnovu konfiguracije za Lighttpd server. Takva konfiguracija bi mogla da bude korišćena u nekoj kućnoj varijanti, ipak za produkcijske servere potrebno je objasniti malo dalje od tek nekoliko linija.

Prva linija koju ćemo dodati jeste:

server.event-handler            = "linux-sysepoll"

Ova linija omogućava da Lighttpd ima određeni način reagovanja na događaje (engl. events). Iz prakse, ova linija je najbolja u produkcijskom okruženju, sa jezgrom (kernel) 2.6 ili novijim.

Sledeća linija:

server.network-backend  = "linux-sendfile"

omogućava mrežni interfejs koji komunicira sa OS-om kako bi što pre prebacio/transferovao datoteke preko mreže. Inače, ove dve linije se mogu menjati u skladu sa željom administratora, prema specifičnim zahtevima unutar mreže.

Opcijom:

server.max-worker = 4

mi dozvoljavamo da Lighttpd napravi 4 thread-a. Najbolje je da uradimo:

cat /proc/cpuinfo | grep cpuid | wc -l

kako bismo videli koji broj thread-ova da postavimo. Najbolje je ne stavljati ni više ni manje od navedenog broja koji dobijemo preko /proc/cpuinfo isecanja. Ove tri linije čine veliku razliku između početničke postavke i naprednije produkcijske. Naravno, čitatelje upućujem na testiranje i preispitivanje svih linija kako bi uskladili na što bolji nivo rad Lighttpd-a. Recimo da trebamo konfigurisati prema određenim domenima, gde svaki domen ima specifična podešavanja. Tom prilikom ćemo iskoristiti moćno konfigurisanje Lighttpd conf datoteke sa bash scripting-om.

Sledeće linije će nam dati mogućnost da konfigurišemo prema određenim klijentima.

include_shell "/etc/lighttpd/test1.sh"

Ili ako želimo da to bude u našoj home fascikli:

include_shell "/home/neki_username/test1.sh"

Unutar datoteke test1.sh stavljamo sledeće linije:

[code]#!/bin/bash
hostname=$(ls /var/www/)
for site in $hostname
do
echo "\$HTTP[\"host\"] == \"${site}\" {"
echo "server.errorlog = \"/var/log/lighttpd/${site}_error.log\""
echo "}"
done[/code]

Ovde smo napravili da za svaki sajt posebno izdvoji error log. Takođe, uz pomoć ove tehnike možemo da izdvojimo specifične konfiguracije, podešavanja, možemo čak da ograničimo određene klijente (stavimo u datoteku limit, izvučemo tu informaciju kroz cat datoteku, dodamo kao promenljivu u shell script-i i uradimo limitiranje). Ukratko mogućnosti su neograničene.

Ako postoji više IP adresa na jednom serveru, postoji mogućnost kontrole i upravljanja prema zadatim host-ovima/korisnicima.

U sledećem delu pisaćemo o programiranju pod Lighttpd API.

Prethodni deo | Nastavak