I have been running a self-managed dedicated server for a a few years now, and think I'm ready for my first co-located server. I have some questions I hope you can help with.

What is the server for?

The server will host my own handful of sites, most of them are forums (php/mysql) but the plan is to start migrating all sites to Ruby on Rails (my first Rails project is what's prompted this - which should be complete in the next few months). Most of the sites don't offer image uploads to users, but the new (Rails) site will.

My current server is a Core2Quad Q9400 2.66GHz with 8GB ram and a 150gb WD VelociRaptor - running Apache, CentOS and cPanel, and handles our current traffic fine.


What set-up do you recommend? Should I drop Apache for Nginx? Are there any step by step guides out there that show you how to set up a server for production from near enough scratch?


What specs do you recommend? I'm thinking, 1U, E3 1230 with 8 to 16GB, with a 120GB SSD for OS/Mysql/Apps etc and a 500GB drive for images/media. Reckon that'll be ok? Budget is up to £1,000 for the server.


Back-up plan - what do you recommend? Mirror both HDs? Or do off-server backups using something like rsync?

I'd like to keep things as easy as possible with this being my first server, but am definitely ready to take the plunge! Any help or links in setting up the server would be greatly appreciated.

  • 1
    Your hardware doesn't sound particularly special... why not use a cloud machine / VPS / commodity colo server instead of building out your own? We can't tell what will be "ok" without knowing a lot of details about what your server does. – Jeff Ferland Mar 8 '12 at 22:59
  • 1
    Agree with Jeff, I'd only consider co-location these days if I had some unusual/specific hardware requirement. Note that mirroring HDs (RAID) is not backup but should be used for fault tolerance. – HTTP500 Mar 8 '12 at 23:10
  • think about using a SSD for storage. If you users are starting to upload images, then you'll find the extra speed well worth the money. If your a developer you could make a scheme where 'hot' images files get stored on cache on the ssd first, and the when they are less popular are stored are normal disk. it's a pity linux does'nt have zfs support because it does this at the filesystem level :-) – The Unix Janitor Mar 8 '12 at 23:32
  • 2
    Whatever you do, don't ever, ever, ever run a production server (esp. one with customer data on it) with single hard drives. Get two of each and run them in RAID1. You won't regret it. But RAID is not a backup, so you still need to do that. – Mark Henderson Mar 8 '12 at 23:42
  • Jeff & HTTP500 - what other info would you like? The current sites run vBulletin (mysql/PHP) the new sites will run Rails (with mysql as the DB). Reason I do not want to rent is because I'm not a fan of renting - we've been renting servers for about 5 years now, and had I gone co-lo ever year I could have added an extra server with the savings. – A4J Mar 9 '12 at 1:00

It's unusual to go co-lo with only one server and only one sysadmin. The point at which it seems worthwhile to me is at about 20 servers and two sysadmins. Some of the benefits that having your servers managed can provide you are:

  • 24/7 monitoring
  • Remote hands
  • In-stock spare parts
  • Backups

With only one server, your backups are tied to the same hardware as the original unless (as you hinted at) you rent another server to put the backups on. Many hosting companies offer backup services that have redundancy built in.

The same applies to your monitoring; if you run Nagios on your only server and it goes down, Nagios goes down with it and can't alert you. Most hosting providers will monitor your servers for hardware faults and will monitor the services running on those servers. They will usually also log in and restart services and if it's more complicated than that, you can talk them through troubleshooting on the phone.

In order to have a reliable and fault-tolerant system you will need at least two servers. They should probably be identical, both running the same services and each monitoring and providing backups the other. You can buy two servers that are half as powerful for the same total capacity as the single, more powerful server but now you have a greater potential for high availability.

With co-location, you are responsible for more of the system, meaning that there are more things that can go wrong that you will have to deal with yourself. If a hard drive dies, you will have to order a new one and organise a trip to the data centre to install it. A managed hosting provider will have the right kind of hard drive in the data centre and will have it replaced within the same day. If the web daemon dies in the middle of the night, there's no one to log in and restart it but you.

Managed hosting providers usually also provide you with a short-term price benefit. My experience is that after 10 months of renting a server you have usually spent as much as it would take to buy the server outright. If you buy your servers and co-locate them, you will be out of pocket for the first year or so and will be better off after that.

At a certain size, co-location makes a lot of sense. Before that size, it's likely to result in a greater up-front cost and lot of stress. It can really blow your budget if you have to hire a pimply faced youth to help manage the system.

As for your other two questions, choosing between nginx and Apache depends greatly on your traffic and your app. I would go with the one you are most familiar with for now and evaluate again if you run into any problems (such as memory usage or concurrent requests). Specs for a server are similarly dependent on your app and your traffic. For this reason (the answer will be useless to anyone else) and also because the answer will go out of date very quickly, these sorts of shopping questions are considered off-topic here.

  • Thanks for the post Ladadadada. I'm not quite sure I want to wait until I need 20 servers tbh. As you say, after a year or so you could buy the server for the same cost - and I've been renting for over 5 years now, started off with managed servers, then went unmanaged. Now feel I am ready to go co lo... and start building up my servers (add a new one every year with the savings). This will allow me to be more ambitious with the projects too, not have to worry about server costs so much. Plus I want SSDs for speed, and renting, the cost is prohibitive. – A4J Mar 9 '12 at 1:10
  • The 20 server mark is flexible and, as always, will depend on your unique requirements (such as uptime and sysadmin work hours). Being unusual doesn't mean that it must not be done. Just understand that you are on the road less traveled and there might be a reason that fewer people travel this road. – Ladadadada Mar 9 '12 at 7:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.