商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Nginx缓存怎么配置

Nginx缓存怎么配置

  发布于2026-06-02 阅读(0)

扫一扫,手机访问

在Nginx中配置缓存,算是提升网站性能最直接的手段之一——既能减轻后端压力,也能让用户响应快上不少。不过很多人一上来就照着网上的配置抄,结果要么缓存没生效,要么把动态内容也给缓存了。下面分享一套经过实践检验的基础配置思路,从安装模块到最终验证,一步不落。

Nginx缓存怎么配置

  1. 确认环境:Nginx及相关模块
    首先要确保Nginx已经安装,并且启用了必要的缓存模块。关键的两个模块是ngx_cachengx_cache_purge(后者用于手动清除缓存)。如果编译时没带,可能需要重新编译或通过包管理器补齐。

  2. 定义缓存路径与缓存区
    在Nginx的主配置文件(/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf)的 http 块内,添加如下配置段:

    http {
        # 缓存路径和大小
        proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
    
        server {
            listen 80;
            server_name example.com;
    
            location / {
                # 启用缓存
                proxy_cache my_cache;
                proxy_pass http://backend_server;
                proxy_cache_valid 200 302 10m;
                proxy_cache_valid 404 1m;
                # 缓存控制头
                add_header X-Proxy-Cache $upstream_cache_status;
    
                # 缓存清除
                location ~ /purge(/.*) {
                    allow 127.0.0.1;
                    deny all;
                    proxy_cache_purge my_cache $scheme://$host$request_uri;
                }
            }
        }
    }

    解释几个关键参数:

    • proxy_cache_path:指定缓存在磁盘上的存储位置、目录层级结构(levels=1:2表示二级目录)、共享内存区名称及大小(keys_zone=my_cache:10m)、最大缓存容量(max_size=1g)、失效时间(inactive=60m)以及是否使用临时路径(建议关闭)。
    • proxy_cache:在location中引用上面定义的缓存区。
    • proxy_cache_valid:针对不同HTTP状态码设置缓存时长。例如200和302响应缓存10分钟,404只缓存1分钟。
    • add_header:在响应头中增加 X-Proxy-Cache 字段,方便调试时查看缓存命中状态(HIT/MISS)。
    • location ~ /purge:定义一个只允许本地访问的清除接口,用于手动清理指定URL的缓存。
  3. 细化缓存控制头
    根据业务需要,可以进一步调整缓存时间策略。比如对经常变化的资源缩短缓存,对静态资源延长缓存。示例:

    proxy_cache_valid 200 301 30m;
    proxy_cache_valid 200 302 10m;
    proxy_cache_valid any 1m;

    这里对301重定向缓存30分钟,302缓存10分钟,其余状态码只缓存1分钟。实际生产中可根据后端接口的稳定性灵活调整。

  4. 重启Nginx使配置生效
    保存配置后,执行重载或重启命令:

    sudo systemctl restart nginx

    注意:如果只是修改了缓存路径或缓存区设置,建议先执行 nginx -t 测试配置文件语法是否正确。

  5. 验证缓存是否生效
    curl 访问站点并查看响应头:

    curl -I http://example.com

    重点关注 X-Proxy-Cache 字段。如果返回 MISS,说明第一次访问未命中;再次访问同一个URL,应该变成 HIT。如果一直都是 MISS,需要检查 proxy_cache_valid 设置的缓存条件是否满足,或者后端是否返回了禁止缓存的响应头(如 Cache-Control: no-cache)。

以上是Nginx缓存的基础配置流程。实际部署中可能还会涉及缓存键自定义、条件缓存、缓存锁定等进阶话题,但先把这套基础跑通,后续优化才有抓手。只要配置得当,缓存对性能的提升立竿见影。

本文转载于:https://www.yisu.com/ask/11174151.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注