lighty's life

lighty developer blog

Optimizing Lighty for High-concurrent, Large-file Downloads

In lighttpd 1.4.6 we have added some modifications for sites which have handle some 100 files in parallel with size of more than 100Mb each.

The problem in earlier releases was that lighttpd had to wait until the disk had seeked to the right place, read a few 100 kbyte to send it out. And this for each request as this scenario was completly trashing the disk-buffering. The IO-wait went sky-high and we were completly bound to the disk-io.

Mission Failed: You Got Spotted

Last month have been very impressive for lighty. Every month I was waiting for the statistics gathered by NetCraft about the usage from web-server software on the net. We all know that Apache has 70% of the market, but as every month I check the detailed reports too see where lighty is now: place 30, 19000 installations.

And somehow this information got leaked to our last few missing distributor as I got mail from Zak (Ubuntu), darix (SuSE) and Ernest (Apple).

Lighttpd Goes Scons

In my daily work at MySQL I added scons as the build-system for a cross-platform, multi-language project and am very satisfied with the results. We have Unix, Windows and MacOS X as build-platforms and Java, C, PHP and Perl as programming languages and all works nicely together in a Python written build-system.

lighttpd goes now the same way, solving the nasty autotools dependencies.

Graceful Restart

With lighttpd 1.4.3 it is possible to do a graceful shutdown by sending a SIGINT to the process. It will only shutdown the server after the client connections are closed successfully without interrupting the connections.

But can this be used to implement ‘reload config on signal’ or ‘graceful restart’ ?

Spice Up for Error Page

lighttpd isn’t beautiful when it shows the user that a file is not available.

When I wrote it I want to make sure to don’t show any information that might be used for XSS attacks like displaying the URL unencoded, show local paths, … something like that. I used the simplest approach: Just show the status.

This is not pretty, but works. But I assume you want something more sexy.

Lighttpd Unleashed - Part One

From time to time we write code faster than documention. This basicly means that sometimes small gems are hidden and unknown to most users.

This time we want to put some focus on the new commandline options in lighttpd 1.4.0 and higher.

Lighttpd 1.4.1

Just a few minutes ago lighttpd 1.4.1 has been released, shortly after lighttpd 1.4.0 which had some user-visible problems.

1.4.1 fixes those bugs, stabilizes the SSL support on OpenBSD and finishes the WebDAV support in mod_webdav to Class 1 (all options except LOCK/UNLOCK).