我在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" )))
在这两种情况下,我仍在点击localhost:8080/endpoint
,这会导致404错误。如何正确设置代理?
答案 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" => ("-" => "-"))
}