Lighttpd反向代理

时间:2018-02-14 19:07:16

标签: reverse-proxy lighttpd mod-proxy

我在Apache的 httpd.conf 中有一个反向代理设置:

ProxyPass "/endpoint" "https://someurl.com/endpoint"
ProxyPassReverse "/endpoint" "https://someurl.com/endpoint"

我需要在Lighttpd中复制它。我正在运行一个JS应用程序,它调用localhost:8080/endpoint来检索一些数据。我想设置代理始终/endpoint重定向到https://someurl.com/endpoint

在我的 lighttpd.conf 中,我有以下设置:

server.modules = ("mod_proxy")

$HTTP["url"] =~ "^.*endpoint" {
  proxy.server = ( "" => (( "host" => "https://someurl.com/endpoint" ) ) )
}

基于this SO answer。 我也尝试过:

server.modules = ("mod_proxy")
proxy.server = ( "/endpoint" => (( "host" => "https://someurl.com/endpoint" )))

基于lighttpd docs

在这两种情况下,我仍在点击localhost:8080/endpoint,这会导致404错误。如何正确设置代理?

1 个答案:

答案 0 :(得分:1)

在lighttpd 1.4.46及更高版本中,您可以使用proxy.header。看到 https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModProxy

server.modules = ("mod_proxy")
$HTTP["url"] == "/endpoint" {
    proxy.server = ( "" => (( "host" => "someurl.com" )))
    proxy.header = ( "map-host-request" => ( "-" => "someurl.com"),
                     "map-host-response" => ("-" => "-"))
}