nginx - the Lighttpd, Pound and Apache Killer.

Wed 30 August 2006

Filed under Howto

Tags Lamer Moments

My good buddy Cliff has been solving various problems with WebServices. We have been working for the last few years on sorting out Apache, Cherokee and Lighttpd. Cliffs vicious tongue has recently been laid to the trunk of Lighttpd. At the recommendation of the venerable Bob Ippolito, we are leaving Pound, Apache and Lighty.

Apache was a little dissatisfying and sent us looking for a lighter-weight solution. It's ok, the configuration sucks sweaty linty donkey balls, and the modules are at best a little strange. Bob points out that high-load can be a problem for it. I have a general distaste for Apache that is due in part to my Gentoo experience. Apache is slow to build, dependent on external packages, and on Gentoo the config has always been a nightmare. (And RedHat, and Debian, and it's just a sh*tty config style altogether).

Lighty seemed fast and simple, and the config file looks like a LUA script. Lots of people, especially the RoR crowd tout it. First it was strange problems with complex config files. Then we found that a single site-per-instance works very well with Lighty. It's light enough to make it happen well also. The real problems began with the fourteen or so patches issued for 1.4.10. It was some crazy high number. Then came the fact that the only developer works on MySQL. Not terrible, but neither of us are impressed in any way with MySQL. However, the Lighttpd project seems to be failing to attract new core developers. Recently Cliff highlighted problems reported by Bob Ippolito in his article Goodbye Lighty Hello Nginx I don't know if the term scathing applies, however Bob's impressive talents failed to unravel the mess that is Lighty internals. The short view of his statement:

One problem with Lighty is that it leaks memory like a sieve [1]. I audited it for a little bit and I gave up, it's a mess. I'd steer clear of it, it will quickly ruin your day if you throw a lot of traffic at it.

Thats done.

Next on our list was Pound the venerable tool for clustering Zope. It's multi-threaded nature gives it tremendous speed, but it too falls down with 400+M of memory consumption under high load.

Last week Bob recommended nginx. It's pretty compelling how quickly Cliff was able to get it up and running. Since starting, he has gone from initial excitement, to determined motivation, to actual productive work.


Up To Something © Joshua M Schmidlkofer Powered by Pelican and Twitter Bootstrap. Icons by Font Awesome and Font Awesome More