排查Debian Nginx日志中的缓存问题可按以下步骤进行:
proxy_cache_path、proxy_cache等指令,且add_header X-Proxy-Cache $upstream_cache_status已添加到location块中,用于记录缓存状态。curl -I http://example.com或浏览器开发者工具,检查响应头中是否有X-Proxy-Cache: HIT/MISS等字段,确认缓存是否被触发。tail -f /var/log/nginx/access.log实时查看日志,重点关注$upstream_cache_status字段(需在配置中添加),统计HIT、MISS、EXPIRED等状态的占比。
proxy_cache_valid配置,调整静态资源缓存时间(如CSS/JS设为365d),动态内容设为1m或更低。tail -f /var/log/nginx/error.log排查缓存相关错误,如缓存目录权限不足、磁盘空间不足或缓存模块未正确加载等。
/var/cache/nginx目录权限为nginx:nginx,且可写。df -h检查磁盘空间,清理过期日志或扩大缓存目录空间。.js、.css、图片)设置较长缓存时间(如expires 365d),动态内容(如API接口)设置较短时间或禁用缓存。proxy_cache_key "$scheme$host$uri"忽略参数,或通过$args仅保留必要参数。proxy_cache_use_stale指令启用过期缓存使用,避免频繁重建缓存。GoAccess或ELK Stack可视化分析缓存命中率、请求分布等,生成每日报告。cron定时执行脚本统计HIT率,当MISS率超过阈值时触发告警。curl或浏览器测试缓存是否生效,确认X-Proxy-Cache状态符合预期。参考来源: