You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我的Nginx反向代理缓存配置无法正常缓存响应内容?

Nginx反向代理缓存不生效原因及解决方案

核心问题原因

  • 缺少显式缓存有效期配置
    Nginx默认不会缓存无明确缓存有效期的响应,当前配置存在两个不符合缓存触发条件的点:
    1. 上游静态服务返回的响应头未携带Cache-Control/Expires类的缓存有效期标识
    2. 反向代理配置中没有添加proxy_cache_valid参数指定响应码的缓存时长
  • 配置参数写法错误
    proxy_cache_path中的inactive参数是时间类型,单位需要用小写字母,你写的inactive=2M是无效写法:小写m代表分钟,大写M是容量单位,会导致该配置项实际生效逻辑异常。
  • 可能存在目录权限问题
    /tmp/cache目录如果是root用户手动创建的,Nginx运行进程(通常为www-data用户)没有写入权限,就算配置正确也无法生成缓存文件。

修复步骤

  1. 修正proxy_cache_path配置的参数写法,将inactive=2M改为inactive=2m
  2. 在反向代理的location /块中添加proxy_cache_valid配置,示例:
location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_cache one;
    # 新增配置:缓存200、304状态码的响应1小时
    proxy_cache_valid 200 304 1h;
}
  1. 修正缓存目录权限,执行以下命令:
sudo chown www-data:www-data /tmp/cache
sudo chmod 755 /tmp/cache
  1. 重启Nginx使配置生效,重新请求资源后即可在/tmp/cache目录下看到缓存条目。

内容的提问来源于stack exchange,提问作者Shane Bishop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 16:06:03