Hello,
First thing that's not showing in your picture are the connections you want to make.
I think you want to have a High Availability cluster of webservers and behind them your database servers. You probably want that when one of the webserver nodes goes down, the other one automatically takes control. If you're experiencing heavy traffic you'll want load balancing too.
I would suggest a set up like this if you have the options of course:
2 nodes that use Heartbeat and ldirectord for the high availability and load balancing. They share one virtual IP and offer several virtual services.
2 webservers that get their traffic from the load balancers.
2 MySQL servers that have master-master replication setup
Basically you can set this all up on different servers but can have for example the load balancers and webservers running on the same server.
With this setup you have always redundancy except when both systems fail at the same time which is unlikely to happen.
You can even synchronize the files on your webservers using rsync or unison.
Have a look at
http://www.howtoforge.com. They have a lot of easy to follow step by step guides.
Kind regards,
Eric