I recently needed to set up a new reverse proxy as an alternative to pound, and for no particularly good reason chose Perlbal.
The documentation is fairly good, but I didn’t find many (good) examples of working configurations. So I thought I’d include my very simple conf.
LOAD vhosts # Management service via telnet CREATE SERVICE mgmt SET role = management SET listen = 127.0.0.1:16000 ENABLE mgmt # Web server CREATE POOL web POOL web ADD 10.10.42.41:80 # Trac server CREATE POOL trac POOL trac ADD 10.10.42.42:80 CREATE SERVICE web_proxy SET role = reverse_proxy SET pool = web ENABLE web_proxy CREATE SERVICE trac_proxy SET role = reverse_proxy SET pool = trac ENABLE trac_proxy # Internally we use 'trac.internal.com' but externally it would # be 'trac.external.com'. So rather than creating a second # virtual host on our trac webserver, we re-write the header HEADER trac_proxy REMOVE Host HEADER trac_proxy INSERT Host:trac.internal.com # Listen on our external IP CREATE SERVICE selector SET listen = 100.110.120.130:80 SET role = selector SET plugins = vhosts VHOST external.com.au = web_proxy VHOST www.external.com.au = web_proxy VHOST trac.external.com.au = trac_proxy ENABLE selector