0

我目前使用 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

4

1 回答 1

1

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

仅供参考:根据https://redmine.lighttpd.net/issues/418,lighttpd 计划(在未来)实施转发 HTTP 扩展(https://www.rfc-editor.org/rfc/rfc7239

顺便说一句,lighttpd 也已经在代理请求中添加了 X-Forwarded-Proto。

于 2016-09-21T06:45:17.437 回答