Lighttpd HTTPS使用X-Forwarded-Proto

时间:2016-08-27 11:24:49

标签: ubuntu lighttpd

我在AWS ELB后面的Ubuntu 16.04上运行Lighttpd 1.4.35(APT上最新的)。负载均衡器正在接受端口80和443上的连接,并且正在进行SSL终止。

我正在尝试检测请求是否使用HTTPS执行,但Lighttpd似乎忽略了X-Forwarded-Proto标头。这只会导致无限的HTTP-> HTTPS重定向。我在这里检查过这个问题:question但是只有一种解决方法,没有解决方案。

我认为使用mod_extforward会有所帮助,但除了在日志中记录客户端IP之外,它似乎没有什么区别。

以下是我的配置的相关部分,在使用Lighttpd时正确检测HTTPS的任何想法都将不胜感激:

server.modules = (
    "mod_accesslog",
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_extforward",
    "mod_redirect",
    "mod_rewrite"
)

extforward.headers = ("X-Forwarded-For")
extforward.forwarder = ("all" => "trust")

# Check the domain
$HTTP["host"] =~ "^domain.com$" {
    # If not HTTPS, redirect to it
    $HTTP["scheme"] != "https" {
        # Redo the host condition check to allow us to access the %1 variable
        $HTTP["host"] =~ "^domain.com$" {
            url.redirect = ("^/(.*)" => "https://%1/$1")
        }
    }
}

0 个答案:

没有答案