Nginx 缓存配置与更新缓存、协商缓存

反向代理配置静态文件的 客户端缓存

重点看expires 配置。
结果示例:
在这里插入图片描述

location / {
    proxy_pass http://localhost:23333/;
    root   /data/wwwroot;
    index  index.html index.htm;
    proxy_set_header Host localhost;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    # 必须的 Websocket 支持
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    add_header X-Cache $upstream_cache_status;
    add_header Cache-Control no-cache;
    #expires -1;
	if ($request_filename ~ .*\.(ico|css|js|png|jpg|jpeg|woff)$) # 如果文件是.css或.js 则,增加响应头
	{
		#add_header my-test "$request_filename" always; # 测试查看变量值
		expires 30d; # 该配置替换了下面的配置
	
		#add_header Cache-Control max-age=36003600; # 返回200 测试强制缓存,不会发起请求(不会有请求头)
	   #add_header Cache-Control no-cache; # 测试代码 返回304 测试协商缓存,会发起请求,确认资源是否更改(请求头会有 If-None-Match【对应etag】 If-Modified-Since【对应last-modified】 字段,确认资源是否变更)
	   # add_header Cache-Control no-store; # 测试代码 返回200 不缓存,必然要发起全新的请求(自然不会有 If-Modified-Since 等字段)
	}
}

一般缓存配置示例

# 静态文件
location ~ ^/web/.*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
  expires 20d;
  access_log off;
}
location ~ ^/web/.*\.(js|css)?$ {
  expires 7d;
  access_log off;
}

配置协商缓存示例

解决了静态资源修改后不更新的问题

  # 公共静态页面
location / {
  add_header Cache-Control no-cache; # 加上这个响应头,表示协商缓存,解决了静态资源修改后不更新的问题
  index index.html index.htm;
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值