Pages

Saturday, 24 November 2012

配置lighttpd webserver,做反向代理

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

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

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

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

    $HTTP["url"] !~ "^(favicon.ico|.*/static/.*)$" {

        proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8000 )))

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