我正在尝试将Lighttpd配置为充当反向代理。我希望有几个URL被代理到不同端口上的不同服务器,无论是在同一台机器上还是在本地网络中。
例如:
//静态的/插座/ajax
Lighttpd将代理除到/static
的连接之外的所有连接。我想直接从这个lighttpd实例向/static
提供所有请求。
这是mod_proxy:的配置文件
##
# Serve Static Content via Lighttpd.
#
$HTTP["url"] =~ "^/static/" {
server.document-root = "/path/to/my/static/files"
accesslog.filename = rootdir + "/var/log/static.log"
server.errorlog = rootdir + "/var/log/static.error.log"
}
##
# Proxy to instance of Socket.io.
#
else $HTTP["url"] =~ "^/socket/" {
accesslog.filename = rootdir + "/var/log/socket.log"
server.errorlog = rootdir + "/var/log/socket.error.log"
proxy.server = (
"" => ( (
"host" => "127.0.0.1",
"port" => 3000
) )
)
}
##
# Proxy to AJAX backend.
#
else $HTTP["url"] =~ "^/ajax/" {
accesslog.filename = rootdir + "/var/log/ajax.log"
server.errorlog = rootdir + "/var/log/ajax.error.log"
proxy.server = (
"" => ( (
"host" => "127.0.0.1",
"port" => 4000
) )
)
}
##
# Proxy to something that returns my layout.
#
else $HTTP["url"] =~ "^/" {
accesslog.filename = rootdir + "/var/log/root.log"
server.errorlog = rootdir + "/var/log/root.error.log"
proxy.server = (
"" => ( (
"host" => "127.0.0.1",
"port" => 5000
) )
)
}
我确信我的正则表达式是错误的。我也认为else
架线是错误的。我只是不知道该怎么做。我是这个领域的新手,所以我希望能朝着正确的方向努力。
谢谢,
严格来说,else块应该是不必要的。
至于您的实际问题,您在问题中表示希望匹配/ajax
,但您的正则表达式查找/ajax/
(注意后面的斜线)。您请求的URL是什么?