я использую ngx_http_proxy_module
с участием proxy_ignore_client_abort
кэшировать файлы. Поэтому, когда клиент закрывает соединение, nginx продолжит копирование файла с бэкэнда на текущий сервер.
Но когда другой пользователь попытается получить этот файл (который все еще копирует), nginx перейдет на серверную часть, чтобы получить новую копию файла, и также попытается кэшировать его.
я могу использовать proxy_cache_lock
чтобы предотвратить это. Но это плохая идея, потому что файл может быть очень большим, и у него будет много времени ждать, пока файл будет кэширован.
Как я могу сказать nginx, чтобы он прочитал этот временный файл и не ждал, пока файл будет кеширован?
Ты ищешь доставка устаревшего объекта кеша. Это можно сделать в случае ошибки, тайм-аута серверной части или во время обновления.
proxy_cache_use_stale updating error timeout;