У меня есть CMS, построенная на PHP, которая хранит список страниц, структуру навигации по страницам и содержимое страниц в файлах на диске. Это приложение размещается на кластере серверов Apache / php-fpm, которые находятся за сервером haproxy. Эти серверы монтируют каталог Apache DocumentRoot через NFS с центрального файлового сервера, поэтому все изменения, сделанные из CMS, записываются в файлы на общем ресурсе NFS.
Я обнаружил, что, если я не смонтирую общий ресурс NFS с параметром noac
, внесенные изменения могут занять до 5-10 секунд для распространения на все серверы в кластере; Это означает, что когда несколько изменений вносятся в быстрой последовательности, последнее изменение иногда перезаписывает более ранние изменения, потому что последнее изменение может быть отправлено на сервер, который еще не получил более ранние изменения.
Однако при использовании опции монтирования noac
возникает задержка в 2-5 секунд при доступе к контенту на стороне посетителя, что совершенно недопустимо.
Есть ли способ программно принудительно принудительно изменить файл в общей папке NFS для распространения на всех клиентов или заставить все клиенты очистить свой кеш этого файла?