If the pair of servers are running hot-cold (i.e., only one of them accesses the file at a time), DRBD is a quick and stable way to accomplish your goal. DRBD is designed with split-brain protections in place, so it should be "good enough".
A brief blurb from the DRBD site:
The Distributed Replicated Block Device (DRBD) is a software-based,
shared-nothing, replicated storage solution mirroring the content of
block devices (hard disks, partitions, logical volumes etc.) between
hosts.
DRBD mirrors data
- in real time. Replication occurs continuously while applications
modify the data on the device.
- transparently. Applications need not be aware that the data is stored
on multiple hosts.
- synchronously or asynchronously. With synchronous mirroring,
applications are notified of write completions after the writes have
been carried out on all hosts. With asynchronous mirroring,
applications are notified of write completions when the writes have
completed locally, which usually is before they have propagated to the
other hosts.
As this is a block-level replication, you would require a bit of extra configuration. E.g., you'd have to create a filesystem on top of the replicated device, and you'd need to mount that filesystem. The default recommended configuration only allows one host to mount the filesystem (to avoid split-brain situations), so you can only access the data on one node at a time.
The whole process is well documented and there are also some easy guides available.
If you are more into automation, Pacemaker + DRBD is a very common combination, it is even documented in the Pacemaker guides which is also a good intro to DRBD itself.
P.S. Funny how the pacemaker guide to DRBD I linked above almost perfectly describes your question.
Even if you’re serving up static websites, having to manually
synchronize the contents of that website to all the machines in the
cluster is not ideal. For dynamic websites, such as a wiki, it’s not
even an option. Not everyone can afford network-attached storage, but
somehow the data needs to be kept in sync.
Enter DRBD, which can be thought of as network-based RAID-1.