nginx应用场景2——浏览器缓存场景

本文详细介绍了HTTP协议中缓存机制的工作原理,包括浏览器如何利用缓存减少加载时间,通过Expires和Cache-Control头来判断资源是否过期,以及使用Etag和Last-Modified进行资源验证。同时介绍了Nginx配置中的缓存控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP协议定义的缓存机制(如:Expire;Cache-control等)

 

1,浏览器无缓存

2,浏览器有缓存

3,校验过期机制

校验是否过期:Expire(HTTP1.0)、Cache-Control(max-age)(HTTP1.1,通用版本)

过期之后校验:

协议中的Etag头信息校验:Etag

Last-Modified头信息校验:LastModified

 

整个过程如图所示:

4,nginx配置语法

配置语法——expires

添加Cache-Control、Expires头

 

内容如下:

location ~ \.(jpg|png|gif)$ {

expires 1h;

gzip on;

}

### 设置和管理 Nginx 中的 `proxy_cache` #### 配置 `proxy_cache` 基础 Nginx 的 `proxy_cache` 是一种高效的缓存机制,能够通过缓存后端服务器的内容来减少重复请求并提升性能。为了实现这一目标,需要合理配置以下几个关键指令。 1. **指定缓存存储路径** 使用 `proxy_cache_path` 指令定义缓存数据的存储位置以及相关参数。例如: ```nginx proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m inactive=24h max_size=1g; ``` 这里设置了缓存目录 `/data/nginx/cache`,分层结构为两级子目录 (`levels=1:2`),键区名为 `my_cache` 并分配 10MB 内存空间给元数据,未被访问超过 24 小时的数据会被标记为失效(`inactive=24h`),总磁盘占用不超过 1GB [`max_size=1g`] [^2]。 2. **启用缓存区域** 在 HTTP 或 server 块中声明要使用的缓存名称: ```nginx proxy_cache my_cache; ``` 3. **控制缓存有效期** 利用 `proxy_cache_valid` 来设定不同类型响应的有效时间。比如: ```nginx proxy_cache_valid 200 301 302 10m; # 对于状态码 200, 301 和 302 的响应有效时间为 10 分钟 proxy_cache_valid any 1h; # 所有其他类型的响应默认保持一小时 ``` 此处明确了哪些 HTTP 状态码对应的资源应该保存多久 [^1]。 4. **处理临时文件** 如果启用了临时文件支持,则可以通过如下方式调整其行为: ```nginx proxy_temp_path /data/nginx/temp; ``` 定义了生成临时文件的基础路径,在某些特殊场景下可能不需要此选项 。 5. **清除或刷新缓存** 当需要手动清理特定范围内的缓存时,可以借助第三方模块如 ngx_cache_purge 实现按需删除操作 [^5]: ```nginx location ~ /purge(/.*) { allow 192.168.1.0/24; deny all; proxy_cache_purge cache_one $host$1$is_args$args; } ``` 以上步骤涵盖了从基础到高级的一些常见配置方法论。 --- ### 关联概念解析 - **区别于浏览器缓存** 虽然两者都旨在加速页面加载过程,但它们的作用域完全不同——前者位于客户端侧(即用户设备),后者则是在服务端完成工作流优化 [^3]。 - **实际应用场景下的考量因素** 根据业务需求决定是否采用主动式还是被动式的更新策略;同时也要考虑到存储介质特性等因素的影响 [^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值