Lighttpd mit Proxy und Auth
Wir haben einen Lighttpd Server als Proxy Server vor hinter liegende
andere HTTP Server geschaltet. Diese Konfiguration resultiert aus
unserem speziellen Staging und macht es sehr einfach zwischen unseren
Entwicklungsserver und dem Live-Server hin und her zu schalten ohne von
außen etwas zu ändern.
$HTTP["host"] == "domain.tld" {
auth.backend = "htdigest", auth.backend.htdigest.userfile = "/path/to/htdigest.users", auth.require = (
"" => (
"method" => "digest",
"realm" => "Protected",
"require" => "user=me"
)
)
$HTTP["url"] !~ "^/static/" {
proxy.server = (
"" => ( (
"host" => "10.10.10.10",
"port" => 1234
) )
)
}
$HTTP["url"] =~ "^/static/" {
alias.url = (
"/static/" => "/path/to/static/"
)
}
}
Die ganze so realisierte Website ist also durch HTTP AUTH geschütz.
Soweit,
so einfach – denkt man. Problem war nun eine ca 2 minütiges Laden beim
ersten Aufruf dieser Seite jeden Tag. Sofern der Browser geschlossen
(komplett, killall) wurde – wieder 2 Minuten warten. Jedes mal, es sei denn der hinter dem Proxy liegende (FastCGI) Server wurde neu gestartet. Das
nervt schon.
Nun endlich die Lösung:
http://trac.lighttpd.net/trac/ticket/1680
Und
dabei war es so einfach. In der “server.modules”-Liste einfach die
Reihenfolge von “mod_auth” und “mod_proxy” vertauschen und schon geht
es!
DONT:
server.modules = ( "mod_accesslog", "mod_proxy", "mod_auth" )
OK:
server.modules = ( "mod_accesslog", "mod_auth", "mod_proxy" )
Sehr einfach, wenn man weiss wie !
My Name is Ulrich Kautz and this is my private blog about server administration, perl programming and some other stuff that is on my mind. I study part-time computer sience at FU Berlin and work as sys admin and web developer at our hosting company