Nginx 缓存配置

场景:网站图片,静态资源,接口等,不经常变动的数据,每次都请求服务器上游服务器。增加缓存,减少上游服务器压力。

1、缓存key 值,吧 url md5加密变成key值进行缓存

2、缓存到达最大空间,会自动使用新缓存覆盖缓存时间即将过时的缓存

nginx配置流程:

1、在 nginx . http 下设置缓存目录

proxy_cache_path D:/project/web2/proxy_cache levels=2:2:2 keys_zone=song:200m inactive=20m max_size=20g;

|-------------------------|------------------------------------|
| proxy_cache_path | 设置缓存文件的存放路径 |
| levels | 指定该缓存空间对应的目录2:2:2 表示 3层目录,由命名的字母组成 |
| keys_zone:name:size | 设置缓存区的名称与大小 |
| inactive | 指定多久不访问则删除缓存 1d = 1天 20m = 20分钟 |
| max_size | 最大缓存空间 |

2、在 nginx . http . server 或 nginx . http . server . location下设置

缓存配置

proxy_cache song;

proxy_cache_key hosturiis_argsargs;

proxy_cache_min_uses 1;

proxy_cache_methods HEAD GET POST;

proxy_cache_valid 200 1d;

加一个头,方便在header中观察是否命中缓存

add_header Nginx-Cache "$upstream_cache_status";

|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| proxy_cache | 默认值:proxy_cache off; |
| proxy_cache_key | 缓存的key值,组成方式 http + uri+参数 (md5) |
| proxy_cache_valid | 返回不同的状态码,设置缓存的时间不同;上面为 状态码 = 200 则缓存 1天; 如:proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; 为200和302的响应URL设置10分钟缓存,为404的响应URL设置1分钟缓存 proxy_cache_valid any 1m; 对所有响应状态码的URL都设置1分钟缓存 |
| proxy_cache_methods | 用来设置缓存哪些HTTP方法 |
| proxy_cache_min_uses | 资源被访问多少次后进行缓存 |

3、代理

location /{

代理 http://edo.xxx.com

proxy_pass http://edo.xxx.com;

}

配置案例:

复制代码
proxy_cache_path D:/project/web2/proxy_cache levels=2:2:2 keys_zone=song:200m inactive=20m max_size=20g;
server {
    listen 80;
    server_name edo.pic.com;
    # 缓存配置
    proxy_cache song;
    proxy_cache_key  $host$uri$is_args$args;
    proxy_cache_min_uses 1;
    proxy_cache_methods HEAD GET POST;
    proxy_cache_valid 200 1d;
     # 加一个头,方便在header中观察是否命中缓存
    add_header  Nginx-Cache "$upstream_cache_status";  
  
    location / {
      proxy_pass http://edo.xxx.com;
    }
}
相关推荐
虚拟指尖12 分钟前
Ubuntu编译安装COLMAP【实测编译成功】
linux·运维·ubuntu
椎4951 小时前
苍穹外卖前端nginx错误之一解决
运维·前端·nginx
刘某的Cloud1 小时前
parted磁盘管理
linux·运维·系统·parted
程序员小凯1 小时前
Spring Boot缓存机制详解
spring boot·后端·缓存
极验1 小时前
iPhone17实体卡槽消失?eSIM 普及下的安全挑战与应对
大数据·运维·安全
爱倒腾的老唐2 小时前
24、Linux 路由管理
linux·运维·网络
yannan201903132 小时前
Docker容器
运维·docker·容器
_清浅2 小时前
计算机网络【第六章-应用层】
运维·服务器·计算机网络
正在努力的小河2 小时前
Linux 自带的 LED 灯驱动实验
linux·运维·服务器
李子圆圆2 小时前
电力专用多功能微气象监测装置在电网安全运维中的核心价值是什么?
运维·安全