lighttpd apparently sets HTTP_X_FORWARDED_PROTO which Dancer does not check in Request.pm when trying to determine the scheme. I'm not sure if lighttpd is at fault, but adding this check in the scheme() method makes the breakage go away.
recognize proxy's HTTP_X_FORWARDED_PROTO
Patch applied. Thanks!