Você pode olhar para um sistema de arquivos como o DRBD que sincronizará automaticamente um volume montado pela rede, como um conjunto de espelhos RAID em rede. Dependendo de suas necessidades específicas, talvez você precise configurá-lo como um cluster com pulsação para evitar situações de divisão cerebral, mas pode ser a melhor maneira de configurar a sincronização bidirecional para sistemas independentes.
Caso contrário, você poderia trabalhar com alguma forma de RSync com script, mas você pode encontrar condições de corrida ou anomalias de acesso a arquivos estranhos.
A última opção que eu conheço seria ter um servidor de arquivos no back-end que os dois servidores da web montam para que haja realmente um armazenamento de arquivos ou alguma outra solução de servidor de armazenamento compartilhado usando fibre channel ou iscsi.