Instead of rewriting a description, I'll use the official one :
Lingerd is a daemon designed to take over the job of properly closing network connections from an http server like Apache.
Because of some technical complications in the way TCP/IP and HTTP work, each Apache process currently wastes a lot of time "lingering" on client connections, after the page has been generated and sent.
Lingerd takes over this job, leaving the Apache process immediately free to handle a new connection. As a result, Lingerd makes it possible to serve the same load using considerably fewer Apache processes.
This translates into a reduced load on the server.
Lingerd is particularily useful in Apache webservers that generate dynamic pages (e.g in conjunction with mod_perl, mod_php or Java/Jakarta/Tomcat).With this in mind, it is adviced to have an apache-lingerd server for dynamic pages and a normal apache server for serving static files like images.
More importantely, lingerd can only do an effective job if HTTP Keep-Alives are turned off; since keep-alives are useful for images, the recommended lingerd setup is to have an Apache/mod_whatever/lingerd server for the dynamic pages, and a plain Apache (or thttpd or boa) for the images.
As Fabio Massimo Di Nitto adviced me, I've made a new flavor of the current Debian apache source tree instead of starting a new package from scratch.
So building apache with my source tree will produce, in addition to the normal flavours :
apache-common-lingerd provides the default files for apache-lingerd and replaces the /usr/sbin/apache-modconf script for adding the apache-lingerd support to it.
If user choose to run apache-lingerd, a lingerd process will be first run to hanlde lingers and then, apache-lingerd processes will.
Note that the default apache-lingerd httpd.conf file will disabled KeepAlive to allow lingerd to work properly.
There is a 500 days old RFP opened for this project, I've made an unofficial package and I am willing to provide help and time for this project to be packaged.
On the boxes I've tested so far, the package seems to run well, I use it for a couple of months now and it does the job properly.
I do think that Debian lacks this package, that's why I've packaged it thanks to the help Fabio gave me.
If you want to give a try to the apache-lingerd package, you can use my personal repository. I provide the binary for i386 and sparc architectures. The source will depend on the arch you want:
| Arch | sources.list |
| i386 | deb http://www.sukria.net/debian ./i386/ |
| sparc | deb http://www.sukria.net/debian ./sparc/ |
Then you'll be able to install apche-lingerd :
# apt-get update # apt-get install apache-lingerd
Feel free to send some feedback to the debian-apache mailing list if you want to speak about the apache-lingerd package.