Nginx优化秘籍(二)proxy_cache_path

为了优化速度,nginx配置可proxy_cache_path模块缓存数据

什么是Nginx缓存?

Nginx基于Proxy Store实现,使用Nginx的http_proxy模块可以实现类似于squid的缓存功能。当启用缓存时,Nginx会将相应数据保存在磁盘缓存中,只要缓存数据尚未过期,就会使用缓存数据来响应客户端的请求。

如何启用缓存?

Nginx启用缓存需要在最顶层的http节点下,如:/etc/nginx/nginx.conf 配置

启用响应缓存

若想启用缓存,需在 http 中使用 proxy_cache_path 指令。其第一个强制参数为用于缓存内容的本地文件系统路径,第二个强制参数为 keys_zone,定义 共享内存区(shared memory zone)的名称和大小,该共享内存用于保存缓存项目的元数据:

http {
    ...
    proxy_cache_path /data/nginx/cache keys_zone=one:10m;
}

然后,想为哪些 context 来缓存服务器的响应,就在其中使用 proxy_cache 指令,用来指定内存区的名称,即 proxy_cache_path 指令中的 keys_zone 参数中的名称,此处为 one:


http {
    ...
    proxy_cache_path /data/nginx/cache keys_zone=one:10m;
    server {
        proxy_cache one;
        location / {
            proxy_pass http://localhost:8000;
        }
    }
}

注意,由 keys_zone 参数指定的大小,不会限制被缓存下来的响应数据的总量。被缓存的响应和其元数据的副本一同保存在文件系统中特定的文件中,若想限制被缓存的响应数据的总量,可以在 proxy_cache_path 指令中使用 max_size 参数。

nginx 缓存所涉及的进程

优化缓存层次结果

proxy_cache_path /data/to_cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; 

链接:
https://segmentfault.com/a/1190000020475756

posted @ 2020-10-28 20:53  鲁哒哒  阅读(8177)  评论(0编辑  收藏  举报