Three months ago I started looking at an alternative web server to serve URL redirects. The need arose when I found that Apache web server would consume a lot of system memory when testing simulated spikes to the server. Apache could handle between 1,200 to 1,700 requests a second. Though the number of requests per second was satisfactory, the memory usage when these simulated spikes was concerning.
I did some research and came across Lighttpd web server, also known as Lighty. Lighty took some time to figure out, but once I did I found the XML style configuration files were not hard to implement and understand. I did find the rewriting to be rather limited in comparison to the mod_rewrite module found in Apache. Never the less, I was able to duplicate the rewrite that I had in Apache in Lighty. For my application, I did have to modify the Lighty source code that way redirects returned a 302 HTTP response (It defaulted to 301 without any way of changing in the configuration files).
After performing similar tests with the same server configured with Lighty, I found that Lighty could handle between 3,900-4,100 requests per second. On top of this, memory usage was minimized to only a fraction of the total memory available on the server. Processor usage did increase, but was not substantial enough to warrant the change.
I am currently experimenting with combining Lighty with Apache services on one server in order to utilize the best of both worlds.
Lighty may be able to also serve dynamic PHP files using FastCGI faster than Apache. I am still concerned that PHP will not function correctly since it is not multi-threaded friendly. I also have security concerns based on what I’ve seem with source code being exposed with a popular web site recently, I am not ready to take on that much risk.