We have a website that runs on multiple web servers. Those servers need to be in synchronization - program files and user uploaded data should be present on both servers. For now this is implemented having post commit hook to synchronize code files. And script doing synchronization in one minute intervals to keep user uploaded files in synchronization. This setup has some drawbacks and seems kinda a little bit like a kludge to me. There should be a better way, maybe someone can suggest something?
Syncing is quite tricky by nature. Instead, you could also make the servers access a shared storage. Turn one of the webservers (or another server) into an NFS server, and have the other servers mount the shared storage.
NFS is quite efficient and has locking to prevent conflicts. On a local network you'll have good performance, unless you have a large number of webservers.