Proper way to load balance a site across two locations

"This was accomplished at the time by having the network device return a 301 redirect.."

That, my friend, is not load balanced across two datacenters. That is one device, sitting at one of them, redirecting clients.

What you should be looking at is using one (or two for local failover) loadbalancers at each site, prefferably something that can update DNS and have GeoIP logic (comes very handy when you're located at large geographical distances).

I personally use KEMP load balancers, and I can highly recommend them: http://www.kemptechnologies.com/uk/server-load-balancing-appliances/geo-loadmaster/glm-overview.html


What about using load sharing with DNS?

www.site.com     1.1.1.1
www.site.com     1.1.1.2
www.site.com     1.1.1.3

The 'good' way of doing "Global Server Load Balancing" (GSLB) is multiple data centers (DC's), each with edge routers advertising the same IP address range, using BGP to select shortest path -- aka Anycast.

The cheaper version is often using identical load balancer appliances (LB's) with a 'GSLB' addon at each location, where the LB's exchange a heartbeat, and fail over using DNS 'tricks' (for lack of a better word).

I would respectfully suggest that you negotiate the multi-DC requirement away, or at least secure funding for a serious effort. Good multi-DC deployments are not easy to set up, and require large'ish upfront investment in equipment (routers) and expertise. Replicating the databases and changing data sets is usually very hard.

One possible workaround might be Amazon Elastic Load Balancer (ELB) together with moving to Amazon EC2. ELB has some provisions for spanning multiple Amazon 'Availability Zones', and EC2+ELB is cheap compared to DIY multi datacenter failover.