lighttpd forum lighty > HTTP Admin Interface Reverse Proxy through Lighttpd

Posted by Dimed Dimedonski
on 25.01.2007 10:36
Hi there,

I'm running TeamSpeak 2 Linux Server (2.0.20.1) on Debian GNU/Linux Etch 
(4.0 RC1) with MySQL (5.0.30-3) Backend with some modified SQL 
Statements for server side password hashing. For reverse proxy 
functionality I want to use Lighttpd HTTP Server (1.4.13) with 
mod_proxy.

What I want to do is to make my TeamSpeak HTTP Admin Interface securely 
accessible through a virtual domain on port 443 (HTTPS) which is in use 
by my Lighttpd HTTP Server. A possible solution would be to use it's 
reverse proxy functionality, which I already used for Admin Interfaces 
of some other applications, which in those cases works pretty well.

After configuring the proxy for the TeamSpeak Admin Interface in exactly 
the way I successfully configured the other Admin Interfaces, I tried to 
connect to the virtual domain through HTTPS, resulting in a zero reply 
until timeout. Lighttpd mod_proxy debug in debug mode gives some 
information on this in the logfile, but i can't find nor can i fix the 
problem.

If someone has experience or ideas on this issue, I would be very 
pleased to see an answer. This thread is a copy of a thread posted on 
the TeamSpeak 2 Forum. The original thread is available here: 
http://forum.goteamspeak.com/showthread.php?t=35735

Here's the Lighttpd logfile content on this request:

2007-01-25 11:08:02: (mod_proxy.c.1079) proxy - start
2007-01-25 11:08:02: (mod_proxy.c.1115) proxy - ext found
2007-01-25 11:08:02: (mod_proxy.c.1123) proxy - used hash balancing, 
hosts: 1
2007-01-25 11:08:02: (mod_proxy.c.1138) proxy - election: / 
123.123.123.123 teamspeak.mydomain.tld 1759253629
2007-01-25 11:08:02: (mod_proxy.c.1239) proxy - found a host 
123.123.123.123 14534
2007-01-25 11:08:02: (mod_proxy.c.1079) proxy - start
2007-01-25 11:08:02: (mod_proxy.c.1115) proxy - ext found
2007-01-25 11:08:02: (mod_proxy.c.1123) proxy - used hash balancing, 
hosts: 1
2007-01-25 11:08:02: (mod_proxy.c.1138) proxy - election: / 
123.123.123.123 teamspeak.mydomain.tld 1759253629
2007-01-25 11:08:02: (mod_proxy.c.1239) proxy - found a host 
123.123.123.123 14534
2007-01-25 11:08:02: (mod_proxy.c.377) connect delayed: 11
2007-01-25 11:08:02: (mod_proxy.c.993) proxy: fdevent-out 1
2007-01-25 11:08:02: (mod_proxy.c.804) proxy - connect - delayed success
2007-01-25 11:08:02: (mod_proxy.c.960) proxy: fdevent-in 4
2007-01-25 11:08:02: (mod_proxy.c.645) proxy - have to read: 165
2007-01-25 11:08:02: (mod_proxy.c.960) proxy: fdevent-in 4
2007-01-25 11:08:02: (mod_proxy.c.645) proxy - have to read: 2709
2007-01-25 11:09:34: (mod_proxy.c.1079) proxy - start
2007-01-25 11:09:34: (mod_proxy.c.1079) proxy - start
2007-01-25 11:09:35: (mod_cgi.c.553) cgi died, pid: 19835
2007-01-25 11:10:34: (mod_proxy.c.1079) proxy - start
2007-01-25 11:10:34: (mod_proxy.c.1079) proxy - start
2007-01-25 11:10:35: (mod_cgi.c.553) cgi died, pid: 19901
2007-01-25 11:11:34: (mod_proxy.c.1079) proxy - start
2007-01-25 11:11:34: (mod_proxy.c.1079) proxy - start
2007-01-25 11:11:34: (mod_cgi.c.553) cgi died, pid: 19957


Here's the Lighttpd configuration:

server.modules   += ( "mod_proxy" )
proxy.debug  = 1
proxy.balance     = "hash"

$SERVER["socket"] == "123.123.123.123:80" {

   $HTTP["host"] == "teamspeak.mydomain.tld" {
      url.redirect         = ( "^/(.*)" => 
"https://teamspeak.mydomain.tld/$1" )
   }

}

$SERVER["socket"] == "123.123.123.123:443" {
   ssl.engine = "enable"
   ssl.pemfile = "/path/to/my/cert.pem"
   ssl.ca-file = "/path/to/my/ca.crt"

   $HTTP["host"] == "teamspeak.mydomain.tld" {
      server.name = "teamspeak.mydomain.tld"
      proxy.server         = ( "" =>
                               (
                                 ( "host" => "123.123.123.123", "port" 
=> 14534 )
                               )
                             )
   }

}