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.