Используем 1-е решение, поскольку извращённых задач, вроде открутки рекламы на периоды даунтайма нам не ставят. Обнаружили баг — некоторые браузеры кешируют заглушку и «отпускают» только по CTRL+F5. Поэтому лучше добавить add_header Expires «1970-01-01 00:00:00» и/или правильный Cache-Control.
Proxy_store гарантирует запись в хранилище, независимо от заголовков, управляющих поведением кеша. Это позволило нам не делать подробный аудит всех проектов на площадке, на который не было времени. По большому счету это был выбор в пользу гарантированного взлета в ущерб правильности решения.
Вторая причина — у нас несколько сотен тысяч файлов в кешах, пока пройдет синхронизация половина из них уже перестанет быть валидными. А единый кеш на несколько серверов это spof.
Не, я патчик делает распределённый кэш, если одна нода вылетит — просто потеряется часть ключей. Или, если места не жалко, на каждой ноде копию хранить. Никакого SPOF, никакой синхронизации файликов по-отдельности.
Автономная работа frontend (заглушка, proxy_store, use_stale)