петак, 19 априла, 2024
Сам свој мајстор

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.

Претходни део | Наставак