我目前正在使用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 ?
答案 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。