On 05/02/2011 09:52 AM, Stefan Hornburg (Racke) wrote:
Hello, fellow dancers!
I got a simple, Dropbox-alike Dancer application in the works. The site is running on https:// with Perlbal, Starman and started with plackup.
Any relative redirects like redirect 'login' are pointing to http:// instead of https://.
What could be the reason?
OK, figured it out with the help of #dancer IRC channel, thanks to miyagawa and bigpresh. Here's the summary for the archives. Perlbal serves as reverse proxy on https://, but Plack is running on http://127.0.0.1:5000/. This is the https::// configuration for Perlbal: # HTTPS selector CREATE SERVICE dropbox_ssl_selector SET listen = 192.168.0.19:443 SET role = selector SET plugins = vpaths SET enable_ssl = on SET ssl_key_file = /etc/ssl/private/ssl-cert.key SET ssl_cert_file = /etc/ssl/certs/ssl-cert.pem VPATH .* = web_prod ENABLE dropbox_ssl_selector HEADER dropbox_ssl_selector INSERT X-Forwarded-Proto: HTTPS The trick to pass the protocol into the dancer application is to use Plack::Middleware::ReverseProxy as follows: builder { enable_if { $_[0]->{REMOTE_ADDR} eq '127.0.0.1' } "Plack::Middleware::ReverseProxy"; $app; }; Regards Racke -- LinuXia Systems => http://www.linuxia.de/ Expert Interchange Consulting and System Administration ICDEVGROUP => http://www.icdevgroup.org/ Interchange Development Team