In an ideal world you'd use a VLAN spanning locations, with a shared IP to point to the load-balancer.
The load-balancer would route to your real servers, nginx, in your case. I've had good success with ucarp for IP-moving, and both nginx and varnish for load-balancing. (Varnish allows me to do caching at the same time.)