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(只有走代理才会生成缓存)

相关推荐
Mahir081 小时前
Redis 与 MySQL 数据同步:一致性保证的完整解决方案
数据库·redis·mysql·缓存·面试·数据一致性
夏日听雨眠2 小时前
LInux(逻辑地址与物理地址的区别,文件描述符,lseek函数)
linux·运维·网络
哲霖软件2 小时前
ERP 赋能非标自动化行业:破解物料与库存管理难题
运维·自动化
多加点辣也没关系3 小时前
Redis 的安装(详细教程)
数据库·redis·缓存
火车叼位3 小时前
替代 Tiny Win10 的 Linux 方案:Debian XFCE 精简桌面搭建
linux·运维
数据库小学妹4 小时前
数据库连接池避坑指南:告别“连接超时”与“资源耗尽”,让系统跑得更快!
数据库·redis·sql·mysql·缓存·dba
syagain_zsx5 小时前
Linux指令初识(实用篇)
linux·运维·服务器
OYangxf5 小时前
Git Commit Message
运维·git
Alter12305 小时前
从“力大砖飞”到“拟态共生”,新华三定义AI基础设施的系统级进化
大数据·运维·人工智能
王木风5 小时前
终端里的编程副驾:DeepSeek-TUI-项目深度拆解,实测与原理分析
linux·运维·人工智能·rust·node.js