>В этом случаи приложения должно уметь очень быстро проверять If-Modified-Since с текущим Last-Modified, если они равны отдавать 304, если нет отдавать новый контент и статус 200.
Под это нужно специально готовить приложение. Обычно приходит GET и отдаётся 200.
А если сделать так: отдавать в кэш браузера, на очень короткий срок динамические страницы(3-5 мин),
статику(JS, CSS, img) на пару часов. А кэш самого nginx хранить дольше: динамические страницы(20-30 минут)
статику несколько суток. Тогда если вдруг понадобится быстро поменять что-то, то мы всегда сможем почистить кэш nginx.
Таким образом, и браузерный кэш нам помогает, и nginx на себя принимает основную нагрузку, и мы в любой момент, в очень короткий срок, можем сделать весь контент у всех пользователей, опять актуальным.
Как идея?