advanced configuration in up upcoming 1.4.x
i’m moo, new to lighttpd
As many of you might ask: “how do i write cond1 AND cond2”. we have the answer in 1.4
i focused on the configuration of the upcoming lighttpd1.4. i made many improvements to her.
One of the most noticeable change is nesting and chaining, as you might already known as “and” / “else”:
cond_b will match only if cond_a match first, and cond_c will not match
if cond_a match first. the order the condition checked/patched is same
as other programming language, c, perl, php etc.
also, “user-defined” variable and “include” is impemented. if you used to copy/paste many of your config for each vhost, u can now put them into a sub config file, and even use the variable:
$HTTP["host"] == "t1.lighttpd.net"{
var.name="t1"
include "myvhost.conf"
}
$HTTP["host"] == "t2.lighttpd.net"{
var.name="t2"
include "myvhost.conf"
}
server.name = var.name + ".lighttpd.net"
server.document-root = "/mydocroot/" + var.name + "/public_html/"
you can also use config values such as server.name + "/...", and even
use env.* to get
environment variable
i’ve also implemented (but not commited yet) include_shell, which parse
the output of program which convert some on the fly. for example:
include "mysub.conf"
# compare the above line to the following
include_shell "/usr/bin/convmimetype /etc/mime.types"
# same as mime.assign = array(...)
notice the above is all at config parsing time (when loading config), so no performance lost. runtime variable isn’t implemented yet. i have no idea how it should be implemented exactly, nor do i know how to avoid hurting performance.
there are more, optimization for runtime condition checking, pcre_study speed up for regex matching, new command line options (check with -h).
FIY, before i implement these things. i myself use m4, a macro language to write the config. it’s powerful but ugly and dirty, and is just a brain dead game. i can use variable/include in m4, but not output “else” “and”. but i can now do all what i needed in lighttpd alone without m4.
check news when 1.4 is out, or check svn :)