A little heads up 10
Hey folks,
back in july, I posted about a new lighty branch we planned on creating. A complete rewrite with a new core design. There haven’t been any posts since then about it and you might wonder if it lead to anything.
Well, roughly 4 months, 256 commits and 14 thousand lines of code later, we are at a point at which we have something to show you. We just opened up our project in redmine to the public: http://redmine.lighttpd.net/wiki/lighttpd-sandboxYou can take a look around and browse the source.
We call it “sandbox” because there is one thing we want to really stress: it is not in a useable state yet. Boards as well as ticket/issue tracking have been disabled for it because we are not capable of providing any support at this point.
I repeat: NO SUPPORT FOR SANDBOX
So what state is it in exactly?
- the config handling is pretty complete
- basic connection handling including throttling and keep-alive/IO timeouts works
- error logging works (introducing multiple error log levels and targets)
- module/plugin interface mostly done
- completely multithreaded
- serves static files
I am currently working on the new mod_accesslog. It is already capable of what the 1.x version can but I wanted to expand it a little bit.
A feature that might be quite usefull: have different log formats and targets depending on the status code of the request. This way, you can for example log all request resulting in a 400 or 500 to a special file with addition information you would normally not log.
But I have trouble finding the right way to express that in the config in a good way. This is the perfect moment to get you users out there involved. I’d really like to hear your suggestions so please leave a comment with your ideas. Take a look at the config documention in the sandbox wiki to know what you can use.
A lot of work has been done and there is even more still ahead. It really takes a lot of time and hopefully it will pay off some day.
So much for the bleeding edge part. About 1.x:
There will probably be a 1.4.21 (pre)release soon. Watch out :)
We really would appretiate if more users would test our preleases and report back to us if they find any issues. It’s crucial in order to bring you well-tested and stable releases.
A thank you to all the people who did this in the past at this point!
This is it for today.
Thanks for using lighty.
ls: thanks!
happy_complainer: of course performance is one of the key aspects of lighty. We cannot talk about benchmarks yet but it seems like it will scale even better than the 1.x branch - especially with multicore/multicpu machines because it is fully multithreaded now and we took effort to avoid locks. There are also better algorithms in place which should pay off if there are lots and lots of connections.
So there are three main goals:
- perform well under high load
- consume as few resources as possible
- be easy to set up
In sandbox there is another goal added while keeping the others:
- be more flexible
> - perform well under high load
That's why I'm using it. I have a half dozen of installations on VDS environments (mostly OpenVZ based) and some NAS and router devices (mostly WL-500GP routers and QNAP NAS boxes, see wl500g.info to get idea where lighty used sometimes :D). On VDS more RAM means more moneys if I'm using hosting or it means fewer containers if I own hardware server. So with Lighttpd virtuzlized and resource-limited environments are really perform better.
>- consume as few resources as possible
As for me this is important too.
>- be easy to set up
As for me, this is less critical. These who want EASY and LAME setup will fing GUI-based servers for both Windows and Linux. However while providing neat GUI and simple setup these servers are neither can cope with any serious load nor they can offer advanced stuff like *CGI interfaces or whatever else. You can't beat these by ease of setup. But anyway, I preferred lighty over nginx due to more simple setup, better documentation and CGI\SCGI support
>In sandbox there is another goal added while keeping the others:
- be more flexible
As for me, I only have few wishes: do not buffer CGI output totally in RAM, make a good use of multicore CPUs where available but do not became Apache No 2 (or there will be no clue to use it instead).Though flexibility is a good goal. If this does not means bloat and speed penalties.