This is an article I had wrote. I thought it might help some. It gives you some basic things to consider before hosting your own web server. It is a bit long but may be useful for those seriously considering the switch.
Hosting Your Own Web Server: Things to Consider
by: Ant Onaf
Are you disgusted or disappointed with your current web host? Have you switched web hosting companies too many times? Have you thought of hosting your own website(s)? Do you have the ambition to control and manage your own web server?
If you answered 'yes' to the questions above, then you may be ready to host your own sites. This article will give you things to consider while making the switch.
When being your own web host you should be technically inclined and have basic knowledge of operating systems, understand technical terms, understand how to setup a server environment (such as: DNS, IIS, Apache, etc.) have basic knowledge of scripting languages and databases (PHP, Perl, MySQL, etc.), be familiar with current technologies, and have a basic understanding of hardware and server components.
You should realize the pros & cons. It is one thing to say, you want to host your own web server and it is another thing to actually do it.
- Own sense of responsibility
- Awareness level raised (you are at the frontline of all server happenings)
- No monthly hosting fees/accounts
- Incompetence no longer exist
- Non-shared environment (dedicated server)
- Unlimited websites, databases, content, storage, etc.
- More in tune with performance and customer awareness
- No more waiting on someone else time
- Complete control
- Exhausting at times
- Faced with server/hardware problems
- ISP business account (monthly business/broadband expense)
- If server goes down then the website is offline
- No technical support team
- Software, hardware, and network expenses
There could be many more pros & cons but I’ve pointed out some of the major ones. Managing a web server starts as a full time job, you must constantly monitor its performance and security. This can sometimes be an exhausting task, especially if you currently have other responsibilities. Though, the control you will have over your website and its performance is rewarding enough. You no longer have to wait for technical support or approval to install a script onto the server. You can have as many websites and databases you want, as long as your hardware can handle it. You no longer have to go into the discussion forums and search for the best web host or rant about how much you hate your current host. You can even begin hosting family & friends personal websites.
Ask yourself, how technically advanced are you? Many times you do not have to be a tech guru or anything of the sort, but you must be very resourceful. You must know how to find resolutions and answers to problems, quickly and efficiently. This means you must be internet savvy. Not just the average surfer, who surfs aimlessly, but you must be the surfer who can always find what they are looking for. This is key, because with any server environment you are going to run into problems and finding the answers are most accomplished online, using multiple resources, search techniques, and engines. Sure you can hire someone to fix your problems, but as we should have learned from the "web hosting", having someone do it for you isn't always the best option. Here is a test to see if you are ready to find solutions. I need a solution to a Microsoft Windows 2003 Server Event Error - "Event ID: 1056” it’s a DHCP Server Error. How would you search? Go ahead find the solution.
Did you first go to Google? If you did, that was a nice effort and common for most, plus a good place to start, but usually it is best to start at the developers' website. In this case "microsoft.com" would have been the first option. Why? Google would more than likely provide you with the answer from Microsoft and other sources, but you don't want to get inaccurate information from other sources. It is common to get information from Microsoft that would not specifically resolve your problem, but the developer should always be your first place to search for the answers. Now search the error again and go to the Microsoft site and find the solution.
You should had found this link: [support.microsoft.com...] (Event ID 1056 is Logged after installing DHCP)
What search phrase did you use? It should have been Event ID: 1056, because the Event ID is the exact error, it pinpoints your exact problem without broadening your search. Sometimes the error description is also appropriate to search, just the error description by itself or in combination with the Event ID. It depends on your error, your search feedback, your ability, and technique. For this example I did not include the error description.
Google or Yahoo! should have been your second option (the two largest search engines). Then search other smaller and niche search engines. A good search site which makes use of Google’s operator tags is www.#*$!.com. Next you should search within forums and discussion groups. If you are pretty internet savvy and have a plentiful or few forums and discussion groups which you frequent then you might actually visit those places before visiting Google or Yahoo!. You can even visit those before visiting the developer site since it is a trusted source, but I wouldn't recommend it, I still would go to the developers' site first. Okay, so now we have planted our feet and have familiarized ourselves with being internet (search) savvy. We are ready to purchase a server!
When making a server purchase you need to consider a few things before doing so. What to buy? A top of the line, quadruple processor, and super fast turbo server is always ideal, but many times it is not logical or affordable. Therefore, you need to weigh your options (sensibly).
What to buy?
First determine your budget. Be realistic and expect to spend at least $2,500 for a low-end server. For a low-end, quality server with other needed equipment and services I spent a little over $4,500 easily.
Determine your ISP (broadband) provider. Research and speak with several different vendors before deciding which broadband solution best suit your needs. Each provider plan is different and has different benefits, determine the best one which fits your needs. Bandwidth should be put into consideration when choosing your ISP.
A backup device should be purchased before implementing a server install. The backup device should be double the server storage space. This could be a standalone unit like an external hard drive or network storage device or the backup device could be multiple devices such as: backup tapes, disc, etc. The reason the backup device should be larger is because you want to be able to have months worth of backups and not just weekly or monthly backups. You should have at least 24 weeks of backups without the concern of storage space. The backup device or safe deposits should also be external, removable, and portable. This is so the backups can be stored in a remote location. Usually for safe-keeping, in event of a theft or disaster.
Determine your daily traffic goal (the daily traffic which you hope to see within 1 year – be realistic), divide that number by the daily traffic you currently receive, and then multiply that number by 5. That is the total number of GB space you need.
Daily Traffic Goal: 10,000 (Divided by) Current Daily Traffic: 500 (Times X) 5 = 100GB
In the example you should purchase a 100GB Hard Drive, it is best to buy 2 or more drives oppose to 1. In this case, since 50GB drives do not exist or harder to find, you would buy two 60GB drives giving you a total of 120GB. 2 or more drives are usually needed in a server to configure the proper RAID option, in some cases 3 or more are needed. Your backup storage space should be a minimum capacity of 200GB (or 240GB, optional).
Determine your memory. If your web server daily traffic goal is 500,000 then I would recommend at least 2GB worth of memory. If it is a shared server, meaning it also has other server services running on the machine, especially a mail server or database server (which is not recommended) then your memory should at least be 3GB or more. Otherwise you can think small and upgrade as needed, a 1GB memory stick should be fine for starters.
Determine your network components, which NIC card best performs under high traffic levels and which router best performs for your LAN / web server. It is best to get a router which has a built-in firewall (commonly known as a “hardware firewall”). Your ISP may provide you with a router or hardware firewall, this is how they are able to authorize your traffic on their network. Like a cable box does for cable television. The router also shares your IP address with other clients on your network. This enables you to share your internet connection without having to get a different IP from your ISP. The hardware firewall is simply a router with a built-in firewall, which means it shares your IP address as well as provides added protection to your network. It blocks bad addresses and ports at the forefront, before it can even make it to your computer. It is not recommended to rely only on a hardware firewall for security, this is just the first step. It is recommended to also include a software firewall (firewall software which installs on your computer) and it is recommended to continue timely security practices, such as updating and patching your system on a scheduled routine.
Determine your processor speed and power. Regardless of the amount of traffic you are expecting I would recommend a dual processor or greater. A dual processor or greater is best because if your website unexpectedly take off then you will be well prepared and if you host other server options or websites on the same server then you will have better performance. At the time of this writing the 64-bit platform is the processor direction. 3.8GHz is the most available speed. If your pockets can afford the latest technologies then that is ideal, but keep in mind at this particular time a 64-bit compatible processor is not necessary, without having many applications that require or deliver on that platform. That is a lot of speed going no where fast. Also, remember the power of the 64-bit platform and the greater the processor speed the more heat it produces, therefore it must be cooled much more rapidly and efficiently. At this time a dual 32-bit, 2.8GHz – 3.2GHz processor will suffice (even that is way more than enough). Though, if your pockets can afford it then the latest and greatest would be fine, you will be well prepared. Otherwise, do like most people and upgrade when the time comes.
Make sure you have a CD/RW drive. A floppy disk drive is not needed, but I do recommend it for making system restore disk. The CD/RW drive is needed because you need some type of removable storage device. You never know when you need to install a driver from a different location…like a ethernet driver. An external CD/RW drive is the best option, especially if you have multiple machines.
Choose your operating system carefully. Choose the vendor which you are most comfortable with. Do not choose a MAC if you never used a MAC before. Just because your friend suggests it and says it is a piece of cake does not mean it will be for you. You are trying to get a web server online not re-learn a whole new system. Stay focused and grounded. If you are comfortable with Microsoft then go with Microsoft, regardless if the IT person at your job says Microsoft products are unsecure, Linux or Unix is more secure and much better for a web server. If you have never used Linux or (especially) Unix then you will be in for a ride of your life. Your web server experience will soon become a nightmare and you will have wasted thousands of dollars on equipment. Go with what you know, not what you are told. Each platform has its pros and cons: Microsoft is the user-friendly of them all; Mac is the web/graphic developer of them all; Linux is the open-source/developers paradise of them all; Unix is the most secure of them all. Each of them can be tweaked in ways to provide a solid, quality platform, it is best to stick with what you already know.
You should install on your system all the web services (such as: Apache, IIS, etc.), applications (such as: backup device software, RAID (Array) Manager), scripting languages (such as: PHP, Perl, etc.), CGI, Database (such as: MySQL, Microsoft SQL, etc.), and a web log analyzer (such as: weblog expert, nihuo, etc.). It is also recommended to perform system updates, security patches, and firewall installs and configurations. It is sometimes best to leave the security installs and configurations for after you have the system functioning properly to avoid any uncalculated problems. This way when you install the firewall and something stops working properly like connecting to your website from outside your network, you can troubleshoot assuming that it is the firewall, therefore you would begin by opening port 80 on the firewall. This method can save you a lot of hassle, but can sometimes be considered the unsecure method, especially if you don’t have a hardware firewall already in place.
Next, there are a few things to consider before installing and configuring a server. Where to put it? A secluded, cool location is ideal, but if this cannot be accomplished then adjustments can be made.
Where to put it?
Locate a location within your home that is static-free, we do not want to put the server on the carpet, near curtains, or anything else that can produce a static reaction. The reason for this is that you do not want the server internal components to receive a static charge and short circuit.
The location should be a cool environment, preferably below room temperature. The reason for a cool area is because servers (as well as desktop computers) produce large amounts of heat, the more heat it produces the more it needs to cool off. If the server is not kept cool, then this can lead to the server hanging and then eventually crashing. It's the same result of when a car overheats, it stops running. You can keep a server internal components cool by keeping the room cool, additionally you can add more fans to the server which cools the server internal components, you can also position a standalone fan directly at the server back panel and constantly have the fan cool the server internal components. Depending on how cool your room is and how much heat your server produces, getting more fans for your server may be a must and not an option.
It is suggested that the server is at a higher level within your house (mid-floor), because if it is in the basement and a flood occurs it could ruin it. If it is in the attic and the sun beams on the attic for hours the server could overheat. Mid-floor level is usually the cooler place within the home, but these recommendations is optional and you should put the server in the most comfortable and convenient space following the rest of the guidelines.
Be sure the area you choose is not damp or wet (no leaks, moisture, near any liquids, or near a window “especially open”). We all know what can happen when electrical components get wet.
The server should sit at least 4” inches from the ground
Be sure a working electrical outlet is near. It is an important to have a power supply, a good brand is APC. Having a power supply can save you from electrical outages, blackouts, and brownouts. Having a power supply helps the server keep its power, remain stable, and unaffected when there is an outage, as well it protects your server against electrical shock. If your outage remains more than 5 minutes it is recommended to begin backing up anything deemed important and shut the computer down voluntarily as well as any other electrical attached devices.
Have a LAN line near and also a phone jack (if you plan on using the server for any dial-up services). It is not recommended to use your web service with a dial-up connection. A broadband connection or greater is recommend for optimal performance. The LAN line should never come from your wall and plug directly into your server, it should plug into a hardware firewall (usually a router with a built-in firewall).
Depending on the size of the server and the internal components the server may be extremely noisy and loud, especially with the fans going. It is suggested to have the server in a secluded location which is not near any peaceful area of the house, such as: bedroom.
Those are all some basic things to consider before hosting your own server. Hosting your own server is not an easy task, but once you have had some time and experience with it, it becomes a breeze. You will have a better web hosting experience, you will be more in tune and reliant to your customers, and you will gain greater technical aptitude. Hosting your own web server is rewarding, useful, and gives you the opportunity to host unlimited websites, databases, services, etc.
If your web traffic becomes too great for your server then it is recommended to choose an offsite web host. It is recommend to purchase a dedicated server with a quality web host. If you choose a server with the above recommendations then your server traffic should be fine for at least up to 25,000,000 page views per month. It could be greater or less depending on your operating system, your server configuration, performance, applications, and services. The point is you should be well in a position to purchase dedicated server space by the time your traffic gets too high, because if you are getting anything close to 1,000,000 page views a month you should have some competitive advertising or ecommerce income. And plus, with the knowledge you will gain from the experience you will be able to support your own server at a dedicated server (remote) location, thus cutting more overhead.
The biggest disadvantage of hosting your own web server is the uptime reliability. If your web server powers down for any reason then your website is offline. Usually web hosting companies have methods and networks to prevent this failure from affecting your website. Usually if the system goes down they have a mirror location where your site is rejuvenated and doesn’t experience much downtime. Some web hosts do not practice this method or any other fault tolerance. Imagine if a blackout or power outage occurs, then your web server could be down for hours or even days, this can affect your business greatly. There are some hosting companies who provide mirror web hosting for a small fee, I haven’t found one that is reliable yet. Or you could cross your fingers and hope for the best, until you are able to host your server outside your home on a larger network.
Hosting your own server usually is not a money-saving experience. It sometimes cost more to host your own server, when you total the up keep and maintenance. The benefit of hosting your own server is usually a better platform for your customers, because it is no longer a shared server and it gives you the ability to make global changes almost instantaneously. When your customers request more performance or specific applications, then you will be able to implement this immediately. Customers like to know that you are in control. If you tell your customers that the server will be down for maintenance from 6 a.m. – 7 a.m. then it would be best if that is when your server is down, not from 5 a.m. – 10 a.m. You know how your web host will tell you one thing and then you have to try explaining it to your customer. In the end it will benefit you to host your own web server as a web business, this helps you and your customers.