Thursday, October 13, 2005

If you go to our site and look around, you'll see that our web platform supports custom domain mapping.

It has been dawning on me, by reading some blogs (cybersonic ) and from talking to customers, that the way we do this is really far superior to the Virtual Host mechanism in Apache. So let me geek out for a second and talk about this, because it's cool.

DNS servers are one of those things that everybody knows they need to configure to get on the internet, but most people aren't quite sure what they do. It's pretty simple: they look up a "name", and return a "number". Like a giant phone book. They resolve a name like '' to an IP address ( That's pretty much all they do.

So when you type an address into a browser, it looks it up in the directory (DNS server) and opens an HTTP connection to that IP address. Simple, right?

But for "custom domains", what happens is that lots and lots of different domain names all map to the same IP address. In our system, not only does map to, so does,,, and hundreds of others.

So how does the server sort this out, with all these domains coming to the exact same place, just an IP address?

The HTTP request header has the domain name that the user is surfing in on. The only question is what page to serve, as you don't want to give index.html to everybody. So you need to associate a user/page owner with each domain name.

With Apache, the administrator has to create a VirtualHost entry in the Apache config file, which is not for the faint of heart. The admin has to set up a "root directory" and permissions and decide whether or not to allow server-side includes and a bunch of stuff like that. It is not a trivial process. Then you have to restart the Apache server for it to take effect.

With our server, we just look at the incoming HTTP request header and see what domain it thinks it's being sent to, and we look it up on the fly to see if any of our users have claimed that domain for one of their pages, which they do by just typing it in, in the Rename Page dialog. It is instantaneous and highly scalable, unlike Apache, which reserves resources for each virtual host and you can only host a relatively small number on any given server. We can host hundreds, or thousands, of unique domains on a single server, without the administrator doing anything, or even knowing about it. The users can do it themselves. The only hard part is configuring the domain registrar's interfaces, which can be a bit challenging (we have partnered with one, PairNIC, who makes it fairly easy, and we have instructions on how to do it).

Anyway, it occured to me that we have a pretty great innovation in this area and as hosting providers discover this, I think they will be sort of amazed. It's not the kind of thing that gets a lot of attention in the press, to come up with a better way to do virtual host tables, but for the people who have to do this all day long--and there are a lot of them--it's pretty significant.

No comments: