I think that there is many different ways of doing this. I have a few questions
Are the 2 servers at the same location?
Are these both on the same internet connection? Meaning WAN interface, NOT Ip's
Do you have any extra servers or regular PC's for use.
Here is my way of doing this.
1. take your DSL modem and configure it into bridge mode.
2. Install pfsense router on to older I386 hardware.
3. Setup Pfsense to use 1:1 NAT and setup your private IP's for the servers, setup the virtual static ips for the outside. setup 1:1 nat from virtual external ips to internal ip.
4. Install openfiler onto 2 servers that have identical storage. There is a how to on here for openfiler replication for High availability storage.
5. basically you will map network drives and store all the services on the mirrored openfiler setup. That way both web,mail,dns,mysql are all stored in one place and then you just have the actual servers connect to shared storage.
This could be done with NFS but have never tried or GlusterFS
I am new to pfsence my self and can only offer little about it. You can have 2 pfsense routers for high availability as dual wans and load balance them. They sky is the limit or in this case your computer hardware. Linux and BSD provide just about everything you need.