Latest from Twitter: It pisses me off that it only took 40min for the carpet cleaners while it took me 2 days to move all of the crap out of the office.
 

Choosing the Best HTTP Server for a VPS

One of the most crucial parts of a web server is the HTTP daemon. This is the part of the server that serves up web pages to visitors. These pieces of software have been highly tooled and can handle a ton of traffic. The problem for a VPS lies in their memory consumption and CPU utilization. We will take a look at the three most common web servers today: Apache, IIS, and lighttpd.

Arguably one of the most common web servers in use today is Apache. The default install of most VPSs will almost always have Apache preinstalled. The issue with Apache lies in its size. It is such a large project and tries to include a little bit of everything so it will work for everyone. This means it has a huge memory footprint and can cause a large CPU load if not tweaked properly. It can be tweaked to preform much better, but by default it has quite a large burden on the server.

If you plan on running a Windows Server odds are you needIIS. This web server is the server from Microsoft and the only server that will properly support all of their technology. If the support of ASP and ASP.NET is needed than you will have to use IIS. It is only supported on Windows and has seems to go through memory like candy. On one of my Windows VPSs the memory in use is almost always at 100%, which is uncommon for Windows (it is common for *NIX). The unscientific conclusion I’ve come to is that it is how it handles sessions. It could be due to the programming on that server, but I’ve heard similar reasoning from other admins.

An alternative web server that is trying to fix the memory problems of the other servers, mainly apache, is lighttpd. This server was designed for speed and being lightweight. The little bit I’ve played with the server I have come to be amazed by it, everything is just simple by default. The problem I found with this server is that by default there is no simple way to control multiple sites under multiple users. The server server has one user and that user needs access to all files for all sites. From a security standpoint this is a really, really bad concept. On the same concept, you can not –easily– control one directories settings without access to the entire configuration file. What I mean is that by default there is nothing similar to .htaccess in apache. I’ve read that you can get it working, but I’ve yet to take the time to do so.

Overall the web server you use will be determined by what you need to run. If you want a thousand sites on a single server Apache will be the logical choice. Need ASP/ASP.NET, IIS is what you need. One or two large sites with a ton of traffic, lighttpd is the best option.

Being the server geek that I am, I currently prefer lighttpd over anything else. That does not mean that I use it everywhere; this server is served by Apache and it gets the job done.

No Comments

Leave a comment


Most Popular Posts