Lighttpd (2. део) – Напредније конфигурисање Lighttpd сервера
Аутор: Владимир Цицовић
У првом делу смо поставили основу конфигурације за Lighttpd сервер. Таква конфигурација би могла да буде коришћена у некој кућној варијанти, ипак за продукцијске сервере потребно је објаснити мало даље од тек неколико линија.
Прва линија коју ћемо додати јесте:
server.event-handler = "linux-sysepoll"
Ова линија омогућава да Lighttpd има одређени начин реаговања на догађаје (енгл. events). Из праксе, ова линија је најбоља у продукцијском окружењу, са језгром (kernel) 2.6 или новијим.
Следећа линија:
server.network-backend = "linux-sendfile"
омогућава мрежни интерфејс који комуницира са OS-ом како би што пре пребацио/трансферовао датотеке преко мреже. Иначе, ове две линије се могу мењати у складу са жељом администратора, према специфичним захтевима унутар мреже.
Опцијом:
server.max-worker = 4
ми дозвољавамо да Lighttpd направи 4 thread-а. Најбоље је да урадимо:
cat /proc/cpuinfo | grep cpuid | wc -l
како бисмо видели који број thread-ова да поставимо. Најбоље је не стављати ни више ни мање од наведеног броја који добијемо преко /proc/cpuinfo исецања. Ове три линије чине велику разлику између почетничке поставке и напредније продукцијске. Наравно, читатеље упућујем на тестирање и преиспитивање свих линија како би ускладили на што бољи ниво рад Lighttpd-а. Рецимо да требамо конфигурисати према одређеним доменима, где сваки домен има специфична подешавања. Том приликом ћемо искористити моћно конфигурисање Lighttpd conf датотеке са bash scripting-ом.
Следеће линије ће нам дати могућност да конфигуришемо према одређеним клијентима.
include_shell "/etc/lighttpd/test1.sh"
Или ако желимо да то буде у нашој home фасцикли:
include_shell "/home/neki_username/test1.sh"
Унутар датотеке test1.sh стављамо следеће линије:
[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]
Овде смо направили да за сваки сајт посебно издвоји error log. Такође, уз помоћ ове технике можемо да издвојимо специфичне конфигурације, подешавања, можемо чак да ограничимо одређене клијенте (ставимо у датотеку лимит, извучемо ту информацију кроз cat датотеку, додамо као променљиву у shell script-и и урадимо лимитирање). Укратко могућности су неограничене.
Ако постоји више IP адреса на једном серверу, постоји могућност контроле и управљања према задатим host-овима/корисницима.
У следећем делу писаћемо о програмирању под Lighttpd API.