Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I need to setup a web hosting solution with the following requirements:

  1. No single point of failure.
  2. Ability to handle reasonable DDOS attacks (non traffic saturation types)
  3. Servers located in geographically important areas
  4. Geographical optimization (If user is in UK, they will be served from closest server)
  5. Open source / low cost solutions
  6. Minimal maintenance

If solutions such as Amazon cloud hosting / etc did not already exist, how would you accomplish this on a minimal (~$500-750/monthly) budget and with one person to administrate it?

A general overview is all that I need as long as you throw in the important keywords, etc, I can google my way through the final setup.

share|improve this question

2 Answers 2

up vote 1 down vote accepted

in your description of requirements, you did do state "high volume traffic or large data replication"....... if thats the case, get a dozen vps, scattered throughout the world, and set up nginx and php/fpm or python on each node, and then do poor man's load balancing (one dns record, such as "www", resolving to all 12 IPs.)

then use pki, rsync, and cron to ensure every hour that all doc roots are identical.

if you set up the rsync crons right, you can do this without the need for a "masteR" doc root, so changes to any one doc root would propagate out to all twleve within the hour.

as for mysql, you would need one locatation to run master, with 11 slaves, or if you want to get fancy, you can run galera cluster with 12 read/write nodes (plus command control box)

also, you didnt mention memcache or redis, but there are ways to do that too..... basically it comes down to how beefy (expensive) each vps node would be (cause you are multiplying by ~12)

EDIT:

Geographical optimization (If user is in UK, they will be served from closest server)

there are several dns service providers that will do this. you have 12 resolutions for a single name, and the provider will return the resolution that is geographically closest.... check out ulradns or easydns.... there was one more i used which was great but slips my memory right now......

Ability to handle reasonable DDOS attacks (non traffic saturation types)

the easiset way to do this is by leveraging iptables on the host level to both keep a blacklist, and throttle incoming connections

share|improve this answer

It's definitely possible, though the money factor depends on how much traffic you receive. I once calculated that it's very possible to get a high-available solution with v-servers for under 100$.

Just some quick thoughts on your list:

  1. A good cluster has no single point of failure
  2. Use a proxy that has rate-limiting or backend-protection features in front of you application servers
  3. There are a bunch providers that let you choose your target server location. Or you just use different local providers(often cheaper, but harder to maintain)
  4. Buzzword: "Geo loadbalancing" and "Geo DNS"
  5. Webserver, filesystem, proxy - for everything there's at least one really good OSS
  6. Buzzword: "automation software" and "configuration management software"
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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