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 !

Leave a Reply