Nginx 缓存组成
- 共享内存
- 数据定位
- 存储键和缓存对象的元数据
- 磁盘空间:
- 存储数据
nginx做为反向代理时,能够将来自upstream的响应缓存至本地,并在后续的客户端请求同样内容时直接从本地构造响应报文。
proxy_cache 模块
为上游服务器提供缓存功能
当客户端再请求时先从缓存中找,找到直接发给客户端;
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m max_size=1G
- /data/nginx/cache
- 本地接受上游服务器响应的,存的目录;
- 缓存文件名:/data/nginx/cache/ c/ 29/b7f54b2df7773722d382f4809d650 29c
-
- 本地接受上游服务器响应的,存的目录;
- level
- 缓存的目录名字符个数
- 缓存最多三级
- 1:2:2
- 有三级目录,第一级目录名1个字符,第二,三级目录名2个字符
- 字符个数最多2个
- keys_zone=one:10m
- one
- 缓存区域名称
- 10m
- 缓存大小为10M
- one
- max_size=10G
- /data/nginx/cache 缓存对象目录的大小
实践
http{ upstream backend { server 10.103.100.3:8090; server 10.103.100.4:8090; } proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m max_size=1G server { listen 80; server_name localhost; location /{ proxy_pass http://backend; proxy_cache one; proxy_cache_valid 200 10m; } } }
注意:
- proxy_cache_path 和upstream一样在http配置块中定义
- location中使用proxy_cache 缓冲区名 来使用该缓存区
- 注意,必须定义缓存有效时间,不然无法使用缓存
- 如不定义:proxy_cache_valid 200 10m;则无法使用返回页为200的缓存;
- 当然可以使用proxy_cache_valid any 1m;定义所有的缓存有效期为1分钟;