My Big Fast Geek Server

A new Internet server can provide improved performance and new features. The trick is picking the right time to upgrade.

By Erik J. Heels

First published 3/1/2004; Law Practice magazine, “nothing.but.net” column; American Bar Association

I knew it was time to upgrade my Internet server when I was constantly running it at 95% of my 600 MB disk quota. I also wanted to add new programs to my server to enhance my website, combat spam, and to manage the server itself. But I knew the project would take several days. I chose to schedule the project for the last week of the year, because there are usually one or two quiet days during that week.

Choosing A New Server

My old server was a Virtual Private Server (VPS) from NTT/Verio (http://www.verio.com/). The server runs FreeBSD, a version of UNIX based on BSD, which was originally developed at the University of California, Berkeley. Like shared UNIX hosting, multiple VPS accounts can run on one physical machine, But unlike shared UNIX hosting, the VPS includes its own (as opposed to shared) mail, web, DNS, database, and other servers, and the administrator has access to the command-line interface, so you can compile and configure your own programs. So a VPS is more powerful and sophisticated than a shared server and less expensive than a dedicated server. Some ISPs call the VPS a virtual dedicated server.

I keep desktop and laptop computers for an average of two years, but my VPS lasted for 3.5 years before I needed to upgrade it. Needless to say, a lot can happen in 3.5 years. I had installed dozens of customized applications, hosted dozens of domain names, and provided mail service to work and to family. As much as I enjoy hacking my UNIX server, I knew that this was going to be a lot of work.

I chose to upgrade to Verio’s VPS2 product, which, for $95/month, gives me 2.5 GB of disk space, root access for maximum control over users and applications, multiple shell accounts, unlimited email accounts, secure subhosting, access to the FreeBSD Ports collection of 9,662 UNIX applications (http://www.freebsd.org/ports/), the ability to Install and configure other applications, and the ability to reboot, start, and stop the server. In other words, the VPS2 is the next best thing to a dedicated server. And the price of the VPS2 is the same as the original VPS.

Documentation, Documentation, Documentation

In order to make the process go smoothly, I decided to rigorously document everything. On my file server, I store information about all of the software installed on all of the computers on my network. The software is organized by operating system and includes subfolder for installed and uninstalled application. For example, my directory of software installed on my server is /FreeBSD4.7/installed/, and the directory of previously installed software is /FreeBSD4.7/uninstalled/. This helps me remember which software is installed and which has been tested and rejected. Each application gets its own folder, which contains six sub-folder:

  1. legal (for receipts, licenses, registrations, etc.)
  2. installer (for installer binaries or pointers to them)
  3. docs (for documentation)
  4. archives (for previously installed features)
  5. development (for testing the program)
  6. production (configuration files for the “live” version of the program)

As I installed each program, I took copies notes of the installation process in a text file. When I completed an installation, I printed out my notes and selected pieces of documentation. I put those in a three-ring binder for quick reference. And now that everything is documented uniformly, the next upgrade should go even more smoothly.

At the end of the process, I was able to substantially improve my server. I added many new programs. The following three stand out.

SpamAssassin – Fighting Spam At The Server

SpamAssassin (http://www.spamassassin.org/) is a program that processes mail and tags suspected spam as such. SpamAssassin processes each message to look for telltale signs of spam such as LOTS OF YELLING or fake return addresses. SpamAssassin can tag messages by adding “hidden” headers to each email message and can optionally pre-pend text (in my case “[SpamAssassin]” to the subject of each suspected spam message. You can configure SpamAssassin to process messages on a server-wide or on a per-user basis. Since about 90% of all of my email is spam, I need to aggressively fight it with programs like SpamAssassin. On the client side, I supplement SpamAssassin with EudoraPro v6 (http://www.eudora.com/), which also is quite adept at correctly identifying spam.

Movable Type Categories – Grouping Related Articles

I managed the articles (and more) on my website with Movable Type (http://www.sixapart.com/). Movable Type is a program that sits between the mySQL database server (where all of my content lives) and the static HTML files on my web server. By adding the categories feature to Movable Type, I was able to group related articles and show which categories I’ve assigned to each article. For example, I file articles about patent law under both the “Intellectual Property” and “Patent Law” categories.

Webmin – Managing The Server

One of the problems with my server is that they it combines the power and flexibility of UNIX with the ease of use of UNIX (said he, tongue firmly in cheek). In other words, UNIX servers can be complex to manage. Verio takes away some of the complexity by automatically installing patches and upgrades to key services such as DNS, mail, and web. Other maintenance must be done by the VPS administrator. Webmin (http://www.webmin.com/) is a web-based interface for administering UNIX systems. Webmin runs as its own server (on a dedicated port), so it will not interfere with your Apache web server. Common tasks, such as changing a user’s password, can be performed quickly and easily with Webmin. Complex tasks can also be performed with Webmin, and third party modules (http://webmin.thirdpartymodules.com/) exist to manage just about any UNIX software you could ever need to manage. In short, Webmin makes managing UNIX servers much more convenient and user friendly.

Summary

The new server is big. Four times the disk space. And it’s fast. About four times as fast. And I just noticed that the improved performance of the server is consistent with Moore’s Law (the thesis proffered by the co-founder of Intel, Gordon Moore, that the computing power of semiconductor chips would double every 18 months), since it’s been just over 2×18 months since my last server, and the power of my server has quadrupled without additional cost. Which must make me a geek.

Leave a Reply

Your email address will not be published. Required fields are marked *