Lighttpd反向代理设置

时间:2012-02-19 19:09:20

标签: ajax socket.io lighttpd reverse-proxy

我正在尝试将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字符串是错误的。我只是不确定如何做到这一点。我是这个领域的新手,所以我很欣赏一些正确方向的推动。

谢谢,

1 个答案:

答案 0 :(得分:2)

严格来说,else块应该是不必要的。

关于您的实际问题,您在问题中说明要匹配/ajax,但您的正则表达式会查找/ajax/(请注意尾随斜杠)。您要求的网址是什么?