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

相关推荐
闲云一鹤1 天前
nginx 快速入门教程 - 写给前端的你
前端·nginx·前端工程化
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
何中应4 天前
Nginx转发请求错误
前端·后端·nginx
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅5 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒5 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
芝士雪豹只抽瑞克五5 天前
Nginx 高性能Web服务器笔记
服务器·nginx
zhangfeng11335 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh