nginx 配置静态缓存全教程 (以及静态缓存文件没有生成)

一、第一步定义一个缓存目录设置目录结构

在 http 模块下定义(keys_zone = 缓存区名:后面是缓存区大小 inactive 不活跃的文件多久清理 max_size 缓存区所占磁盘的上限 use_temp_path 默认关闭(有需要自己百度))

powershell 复制代码
proxy_cache_path /path/your_cache_dir levels = 1:2 keys_zone=your_cache_name:10g inactive=1h max_size=20g use_temp_path=off; 

二、开启缓存

在 http、server、location 中开启代理 缓存

举例在location中开启(将图片jscsshtml等放入缓存)

powershell 复制代码
server {
    listen 8099;   #缓存端口或者缓存域名
    root /www/wwwroot/static/;
    index index.html;
        location ~*.\.(png|jpg|css|html)$ {
        	expires  30m;				#缓存过期时间在浏览器的缓存时间
            proxy_pass http://localhost:8100;		# 代理地址非缓存文件的访问地址,***必须加这个否则生成不来缓存这个***
            proxy_cache your_cache_name;    	#proxy_cache_path中定义的名字
            proxy_cache_valid 200 10m;				#把状态值为200的缓存10分钟
            proxy_cache_valid any 5m; 				#把状态值除来200的缓存5分钟
            proxy_cache_key "$host$request_uri"; 	#默认key
            proxy_cache_revalidate on;				#是否开启验证缓存的有效性关闭则缓存数据有变化依然请求缓存 开启则会请求新的
            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;				#当后台出现错误时跳过
             add_header X-Proxy-Cache $upstream_cache_status;			#在头文件新增一个X-Proxy-Cache(自定义)验证缓存是否命中 Hit命中 miss 没有命中
        }
}


server {
    listen 8100; 		#正式的地址
    root /www/wwwroot/static/;
    index index.html; 

    # 其他配置...
}

注意事项

nginx 缓存叫代理缓存 应该是有两台以上的服务器。如果只有一台加不同的域名或者端口做区分。把后台服务器和缓存服务分开

缓存没有生成

1、文件夹是否有权限

2、是否设置了proxy_pass(只有走代理才会生成缓存)

相关推荐
fuyongliang12317 分钟前
nginx反向代理,负载均衡,tomcat的数据流向图篇解析
nginx·tomcat·负载均衡
tuokuac1 小时前
nginx配置前端请求转发到指定的后端ip
前端·tcp/ip·nginx
Mr. Cao code2 小时前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
上官浩仁3 小时前
springboot redisson 缓存入门与实战
spring boot·redis·缓存
wanhengidc3 小时前
云手机运行流畅,秒开不卡顿
运维·网络·科技·游戏·智能手机
笨小孩@GF 知行合一3 小时前
OSPF实验:外部路由引入
运维·网络·hcip·数通·ospf
asdfg12589634 小时前
为什么要在出口路由器router配置NAT与默认路由
运维·网络·计算机网络
bug攻城狮4 小时前
Skopeo 工具介绍与 CentOS 7 安装指南
linux·运维·centos
宇宙第一小趴菜4 小时前
08 修改自己的Centos的软件源
linux·运维·centos
bug攻城狮4 小时前
彻底禁用 CentOS 7.9 中 vi/vim 的滴滴声
linux·运维·服务器·centos·vim