Creating Your Own Web Server

I got a question, What do i need to I create my own web server?
At first it seemed like a very curious and redundant question, since web hosting is already quite mature, and there is a wealth of both free and commercial web hosting services to choose from. But, i am compelled to follow through on this topic, since my beginnings are in an ISP, and there are still a number of good reasons to have your own web server.

First, a short definition: In the simplest form, a web server is nothing more then a program running on a computer, which accepts requests via the HTTP protocol and returns the requested web content (HTML, javascript, flash, video, audio...) to the requesting browser for rendering. More often then not, part of this content is kept in a database.
So in essence, all you need to run a web server is a computer, an operating system, a web server program and a database server program.

This is the spot where the simple things end, because now you need to ask yourself, what kind of computer, what operating system, what web server software, what database... But in order to answer these four questions, you need to ask more questions. Here are some of them, in no particular order:

  1. Do you want your server to survive a failed power supply without noticeable downtime?
  2. Do you want your server to survive a failed hard drive without noticeable downtime?
  3. Do you want to perform backup of the web content on the server?
  4. What type of web application will you run? (PHP, ASP, .Net, PERL, Ruby...)
  5. Do you want to use free or commercial web server software?
  6. Do you want to use free or commercial database server?
  7. Which database are you prepared to use and maintain (install, tune, manage, progam for...)?
  8. Which operating system are you prepared to maintain (install, tune, manage)?
  9. Is the chosen database server supported on any of the chosen operating systems?
  10. Is the chosen web server supported on any of the chosen operating systems?

As you can probably see, all these questions in some way adress the purpose of the created web server. To answer the original question, here is a summary of technical requirements for a web server with different types of use:

  1. For tinkering - A web server used only for tinkering at home should be no more then free software installed on your PC.
  2. Beginner development - A web server used for beginner development should be a virtual machine or a small dedicated pc, with free or some commercial software, with some simple means of backup like a DVD-RW.
  3. In-house development - A web server used for in-house development should be a dedicated PC or a small server, with free or some commercial software, and some means of backup like a DVD-RW or a DAT/LTO tape drive.
  4. Service Providing - An ISP web server should be a dedicated server, with redundant power supply and hard drives, a professiona backup system (robotic drive enclosures and backup server) and appropriate software.

The web server i am currently using for testing and security review purposes is the AppServ (http://www.appservnetwork.com/) running on my WindowsXP laptop. It delivers an instantly functioning Apache web server with support for PHP, and an accompanyig full-blown MySQL server, and a simple but sufficient SQL server management interface (PHPMyAdmin)

For advanced or commercial use, the list of software products is huge, but here is my shortlist, with appropriate links to software:

Talk back and comments are most welcome

1 comment:

jowdjbrown said...

I have read your excellent post. This is a great job. I have enjoyed reading your post first time. I want to say thanks for this post. Thank you...
web hosting in Nigeria

Designed by Posicionamiento Web