proxy_store
The `proxy_store` 指令允许将代理的响应存储在本地文件系统中。 — NGINX HTTP Core
proxy_store
httpserverlocation
语法proxy_store on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
`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 存储响应。