Назад | Перейти на главную страницу

Как обеспечить согласованность кеша между двумя краями Nginx

У меня есть веб-сайт, на котором почти 99% контента обслуживается из кеша Nginx (который также является веб-сервером). Чтобы дать вам представление о том, насколько прост механизм кеширования, это мой ключ кеширования

proxy_cache_key "$scheme://$host$uri"; 

Я реализую отказоустойчивый веб-сервер / кеш, используя балансировку нагрузки Cloudflare. Еще один веб-сервер перед исходным веб-сервером. Если кеш - это MISS или BYPASS, запрос идет от веб-сервера кеша к источнику и обновляет обе машины. Для разогрева резервной кэш-машины я копирую / rsync поверх файлов кеша (один раз).

Вот сложная часть: балансировщик нагрузки Cloudflare является циклическим и имеет географическую привязку. Это означает, что если запрос попадет прямо в источник, а это MISS, кеш не будет реплицирован.

Я думал о беге унисон на cron, но это кажется очень утиным.

Каким правильным подходом я могу следовать здесь?

почему бы не использовать lsyncd? если синхронизация файлов - единственная проблема? это довольно простой и надежный инструмент