Lighttpd根据传入请求设置X-Forwarded-Host

时间:2016-09-20 14:44:33

标签: reverse-proxy lighttpd x-forwarded-for

我目前正在使用Lighttpd作为代理,将HTTPS加密添加到不支持HTTPS的应用程序中。

为此,我使用以下配置:

# Listen to port 443
$SERVER["socket"] == ":443" {
  ssl.engine = "enable"
  include "ssl-params.conf"

  proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 80 ) ) )
  setenv.add-request-header  = (
     "X-Forwarded-Proto" => "https",
     "X-Forwarded-Host" => "hardcoded.domain.com",
     "X-Forwarded-Port" => "443"
  )
  # Set Error/Log
  server.errorlog = "/var/log/lighttpd/error.log"
}

此配置除一件事外有效。我必须硬编码 X-Forwarded-Host 的值。 直到最近才出现这个问题,但现在我有多个域指向同一个代理,需要转发正确的域名。

有没有办法从传入的HTTPS连接中提取主机,以便将正确的值提供给 X-Forwarded-Host

1 个答案:

答案 0 :(得分:1)

lighttpd将X-Host请求标头中的主机提供给后端,而不是使用X-Forwarded-Host。

仅供参考:根据https://redmine.lighttpd.net/issues/418,lighttpd计划(将来)实施转发HTTP扩展(https://tools.ietf.org/html/rfc7239

BTW,lighttpd也已经在代理请求中添加了X-Forwarded-Proto。