[[oktatas:linux:webszerver|< Webszerver]]
====== Lighttpd ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2011, 2013, 2017
* Licenc: GNU Free Documentation License 1.3
* Web: http://szit.hu
===== Telepítés =====
Telepítéskor ügyeljünk arra, ha egy másik webszerver telepítve van, akkor azzal
nincs konfliktusban a csomagkezelőben, azaz feltehető második webszerverként is.
apt-get install lighttpd
A legújabb verzió letölthető innen:
* http://www.lighttpd.net
===== Vezérlés =====
invoke-rc.d lighttpd start
invoke-rc.d lighttpd stop
invoke-rc.d lighttpd restart
===== Beállítás példák =====
Telepítés után kapunk egy /etc/lighttpd könyvtárat.
A beállítások a /etc/lighttpd/lighttpd.conf állományból lehetséges.
A dokumentumok helyének gyökere:
server.document-root = "/var/www/html"
A szerver TCP portja:
server.port = 80
Használt modulok megadása:
server.modules = ( "mod_access", "mod_rewrite" )
Hibanaplók helye:
server.errorlog = "/var/log/lighttpd/error.log"
A szerverfolyamat mely felhasználó és csoport nevében fusson:
server.username = "www-data"
server.groupname = "www-data"
Más konfigurációs fájlok beolvasása:
include "mas.types.conf"
Konfiguráció olvasása egy parancs kimenetéből:
include_shell "/usr/local/bin/parancs.pl"
===== Feltételes konfiguráció =====
A legtöbb beállítás konfigurálható feltételesen, és egymásba ágyazva a következő szintaktika szerint:
<érték> {
...
<érték> {
... beépített: Csak akkor egyezik, ha a szülő is egyezett
}
}
else <érték> {
... az ellenben ha rész
}
A mezők a következők egyike lehet:
^ Mezőnév ^ Leírás ^
| $HTTP["cookie"] | Sütire (cookie) egyezik |
| $HTTP["host"] | Gépnévre (host) egyezik |
| $HTTP["useragent"] | Klienségpre egyezik |
| $HTTP["referer"] | Hivatkozáson egyezik |
| $HTTP["url"] | URL-en egyezik. Ha van beépített rész, akkor inner blokknak kell lennie |
| $HTTP["querystring"] | Lekérő sztringre egyezi, ? után (index.php?module=images) |
| $HTTP["remoteip"] | Távoli IP-re vagy hálózatra egyezik. IPv6-tal nem működik |
| $HTTP["request-method"] | Az 1.4.19-es verziótól. A kérés metódusára egyezik |
| $HTTP["scheme"] | Az 1.4.19-es verziótól. Bejövő kapcsolatok által használt sémákra egyezik http vagy https |
| $HTTP["language"] | Az 1.4.21-es verziótól. Az Accept-Language fejlécsorra egyezik |
| $SERVER["socket"] | Socketre egyezik. Az érték formája ip:port. Az IP opcionális. \\ Csak az egyenlőség (==) támogatott. Használd ezt ha IP/port alapú virtuálhostokat akarsz. |
| $PHYSICAL["path"] | Az 1.5.0 verziótól (Debianban még nem ez van). Egy fájl fizikai útvonalára egyezik. (file / cgi script) |
| $PHYSICAL["existing-path"] | Az 1.5.0 verziótól (Debian még nem ez van). Csak létehő fájlokra egyezik a helyi fájlrendszerben. file / cgi script |
Az operátor a következők egyike lehet:
^ Operátor ^ Érték ^
| == | szöveg egyenlősége esetén egyezik |
| != | ha szöveg nem egyenlő, akkor egyezik |
| =~ | perl stílusú szabályos kifejezések esetén az egyezés |
| !~ | perl stílusú szabályos kifejezések esetén a nem egyezés |
===== Példa =====
A könyvtár listázását tiltjuk a következő helyen /download/
dir-listing.activate = "enable"
$HTTP["url"] =~ "^/download/" {
dir-listing.activate = "disable"
}
Tiltva a www.pelda.org minden felhasználónak, aki a 10.0.0.0/8-as hálózatból jön
$HTTP["host"] == "www.pelda.org" {
$HTTP["remoteip"] != "10.0.0.0/8" {
url.access-deny = ( "" )
}
}
Csak a 200.19.1.5 és 210.45.2.7 címről engedjük, www.example.org/admin/ könyvtárhoz való hozzáférést:
$HTTP["host"] == "www.example.org" {
$HTTP["remoteip"] !~ "^(200\.19\.1\.5|210\.45\.2\.7)$" {
$HTTP["url"] =~ "^/admin/" {
url.access-deny = ( "" )
}
}
}