proxy_store
Директива `proxy_store` позволяет сохранять ответы от проксируемых серверов в локальной файловой системе.
Описание
Директива proxy_store используется в контексте блоков http, server или location для включения сохранения ответов от проксируемых серверов в локальной файловой системе. Когда значение установлено в on, NGINX сохранит ответ на проксируемый запрос, исходя из настроенного URI, в указанный локальный файл или каталог.
Директива требует аргумента, который задаёт путь к каталогу, в который будут сохраняться файлы. Если каталог не существует, NGINX не создаст его, и при обращении будет возвращена ошибка 404. Поэтому важно, чтобы у процесса были соответствующие права на запись в назначенный каталог. Кроме того, директиву можно комбинировать с другими настройками, такими как proxy_pass, чтобы направлять запросы на бэкенд-сервис и одновременно сохранять ответ в файл для последующего доступа.
При использовании proxy_store также важно учитывать вопросы управления структурой каталогов и кэширования ответов. Ответы будут сохраняться в плоской структуре, если не применена соответствующая схема хеширования или специальная обработка URI. Поэтому следует внимательно продумывать структуру URI, чтобы предотвратить перезапись файлов и обеспечить понятные схемы доступа.
Пример конфига
location /downloads {
proxy_pass http://backend;
proxy_store on;
proxy_store_path /var/www/stored_files;
}Убедитесь, что указанный путь для хранения существует и имеет корректные права доступа.
Если несколько запросов соответствуют одному и тому же URI, ответы будут перезаписываться, если это не будет обработано должным образом.
Помните, что proxy_store плохо справляется с динамическими данными, поскольку он сохраняет ответ непосредственно по URI.