proxy_cache
NGINX 中的 'proxy_cache' 指令启用对代理内容的缓存,以改善响应时间并减轻服务器负载。 — NGINX HTTP Core
说明
'proxy_cache' 指令指定用于存储来自代理服务器的缓存响应的缓存区域。通过定义缓存,NGINX 可以存储响应,从而避免频繁向后端服务器发出请求,有效地加快终端用户的响应时间并减轻后端系统的负载。该指令可用于 HTTP、server 和 location 块的上下文中,使在配置的不同部分实现缓存策略具有灵活性。\n\n'proxy_cache' 指令的语法如下:'proxy_cache zone;',其中 'zone' 是已定义缓存区域的名称,必须使用 'proxy_cache_path' 指令事先创建。该指令控制响应的存储时长,并会影响后续请求的处理方式——是从缓存中返回还是转发到后端。此外,还可以设置其他指令以微调缓存行为,例如 'proxy_cache_valid'(根据响应状态码定义缓存时长)和 'proxy_cache_key'(根据请求参数自定义缓存键的生成方式)。\n\n还需注意,仅靠该指令本身并不能完整配置缓存行为。它必须与关于缓存区域、具体缓存策略以及共享内存分配的附加配置配合使用,这些配置决定了 NGINX 服务器中缓存的管理和优化方式。
配置示例
http {
proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m;
server {
location / {
proxy_pass http://backend;
proxy_cache my_cache;
}
}
}确保先使用 'proxy_cache_path' 定义缓存区域,然后再在 'proxy_cache' 中引用它。
使用 'proxy_cache' 而没有适当的缓存控制可能导致向用户提供过时的数据。
对缓存键要小心,因为如果未通过 'proxy_cache_key' 正确设置,可能会导致意外行为。
确保文件系统权限允许 NGINX 向 'proxy_cache_path' 指定的目录写入。