I have the following setup, Linux stack, with front-end running nginx proxy and static assets and back-end running Ruby on Rails and MySQL in master-master replication: Primary site: front-end.a , back-end.a Secondary site: front-end.b , back-end.b A router sitting on a shared network that can route to both primary and secondary sites The primary site serves requests most of the time. The secondary site is redundant. back-end.b is in master-master replication with back-end.a but is read-only. When the primary site goes down, requests need to be redirected to the secondary site. This will show a service unavailable 503 page until manual intervention ensures that the primary site won't come back and hits the big switch that makes the secondary site live and read-write. The primary site can then be brought back in a controlled fashion, with back-end.a becoming a read-only replication slave of back-end.b . When everything on the primary site is ready again, front-end.b will start s...