Fwd: Multiple servers for 1 domain name?
On Mon, 2003-02-10 at 16:28, Jason Lim wrote:
I was wondering if you guys are aware of any solution for multiple
to server 1 domain name?
That is... like those big ISPs that have "user" webhosting.
http://members.isp.com/joe/ (goes to server no. 5)
http://members.isp.com/jane/ (goes to server no. 3)
http://members.isp.com/someone/ (goes to server no. 2)
Basically the reason for doing this is because the existing single
is overloaded, and need to split the workload to 1 or 2 more servers.
Some of the problem might be solved by moving the database to a
dedicated machine. If that doesn't spread the load enough, doing a DNS
round-robin (having member.isp.com resolve to two different machines
with exactly the same setup) might solve the problem. The web
directories etc. (especially writeable areas for cgi programs) would
need to be shared, with NFS for example (which might create some
problems so you'd need to be careful...).
Of course, this causes requests going to a random server - so PHPs
session tracking ability etc. will have problems. If you use such
things, investigating just upgrading the server first could already
bring relief (where is the performance problem exactly? Disk? CPU?
If you start implementing the server farm architecture, and have the
problem of PHP sessions, SSL sessions, etc... Then you may want to
invest in a hardware web switch, like an F5 or Foundry. Yep, they're
expensive, but super fast and they will hold a particular user's
session to a single server for the duration of that session, fixing the
problems of the PHP/SSL issues.
Also, they have the added feature of being able to check
heartbeat/pings of each server in the cluster. A particular server
goes down, and the switch will automatically redirect requests to other
servers, until that broken server comes back online. DNS round robin
will continue to resolve to a broken server, thus making your uptime
availability = numgoodservers / totalservers. Not a good thing if
you're running two servers, and one goes bad. Instant 50%
availability. Furthermore, you can assign weights to each server, so
if you have some old system that you still want to be in the cluster,
you can add them with a lower weight, and they'll get hit less than the
brand new Dells you just bought (<- that one's for you Russell Coker. :)
I'm currently implementing this setup for our web hosting company, and
so far it's working great. NFS/MySQL on a big RAID-5 (3Ware) file
server, with dedicated 100baseT lines to multiple app servers, which
are all behind a Foundry ServerIronXL. Works like a champ. Even
better if you have your applications using some sort of directory
structure for authentication, like LDAP or MySQL, (such as vpopmail,
proftpd, apache auth, etc.) If I need additional throughput, then I'll
probably upgrade to Gigabit ethernet between the app servers and the
file server, and add more app servers. Also, eventually I'll be adding
a redundant file server that mirrors the main one..
Hope that helps-