> В итоге без этой строчки не работает proxy_ignore_headers
> Cache-Control;
>
> Похоже, приложение говорит так nginx не кешить и он не кэшит.
> А эта строчка игнорирует заголовок и nginx кэшит.
Да, так и есть.
> А как проверить, что именно из кэша отдаётся статика, а не к
> приложению идёт запрос?
поставьте директиву - proxy_cache_use_stale error
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale
Выключите ваше приложения, очистите кеш браузера, и попробуйте загрузить статику, если Nginx отдаст, значит он взял её из кеша (ваше приложения не работает) если нет, тогда два варианта или на этот файл ещё нет кеша или что-то не так настроили.
Директива - proxy_cache_use_stale, полезная советую её оставить на продакшине, в этом случаи даже если приложения упало, Nginx будет отдавать контент из кеша и все будет ок.
Так же советую настроить proxy_cache_lock on
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_lock