配置lighttpd反向代理

廖雪峰 / 编程 / 2011-5-8 16:34 / 阅读: 7

lighttpd是和nginx类似的高性能轻量级开源Web服务器,不过其反向代理配置和nginx略有不同,如果反向代理的URL没有一定的规则(比如以.do结尾),基本配置方法就是过滤掉不需要代理的地址,比如favicon.ico和包含/static/的文件夹,剩下的地址通过本地8080端口做反向代理。

以下是一个配置文件,包含两个host,其中一个域全部被重定向到主域下:

server.modules += ( "mod_accesslog", "mod_proxy" )

$HTTP["host"] == "liaoxuefeng.com" {
    url.redirect = ( "^/(.*)" => "http://www.liaoxuefeng.com/$1" )
}

$HTTP["host"] == "www.liaoxuefeng.com" {
    server.name = "www.liaoxuefeng.com"
    server.document-root = "/srv/liaoxuefeng.com/www/"

    accesslog.filename = "/srv/liaoxuefeng.com/log/access.log"
    server.errorlog = "/srv/liaoxuefeng.com/log/error.log"

    $HTTP["url"] !~ "^(favicon.ico|.*/static/.*)$" {
        proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8000 )))
    }
}

以上配置在lighttpd 1.4.x中测试通过。