学习Nginx(十):提升网站负载之expires缓存

​​​​​​​前言

在Nginx中配置expires缓存是提高网站负载能力的有效手段之一。expires指令用于控制HTTP响应头中的 Expires 或 Cache-Control 的 max-age 字段,从而指定浏览器缓存资源的时间长度。可以减少对服务器的请求次数,降低服务器的负载,并提高网站的响应速度。

  • 配置expires缓存的建议:
  • 静态文件缓存:对于图片、CSS、JavaScript 等静态文件,可以设置较长的缓存时间。当浏览器再次请求这些文件时,它会从本地缓存中加载,而不是从服务器下载。
  • 动态内容缓存:虽然动态内容(如 PHP 页面、数据库查询结果等)通常不适合长期缓存,可以考虑对经常访问的动态内容进行缓存。通过使用Nginx 的代理缓存或第三方缓存模块(如 FastCGI Cache )来实现。对于动态内容,需要确保缓存的更新与后端服务器的更新保持同步,以避免数据不一致的问题。
  • 注意缓存的粒度:在配置 expires 缓存时,需要注意缓存的粒度。过细的粒度可能会导致大量的缓存项,增加管理和更新的复杂性。而过粗的粒度可能会降低缓存的命中率,因为某些资源可能无法被有效地缓存。因此,需要根据实际情况来选择合适的缓存粒度。
  • 监控和调优:配置完 expires 缓存后,需要定期监控网站的性能和缓存的使用情况。如果发现缓存命中率过低或服务器负载仍然很高,需要调整缓存设置或考虑使用其他优化手段。
  • 确保服务器时间准确:expires 指令依赖于服务器的时间来确定缓存的过期时间。因此,确保Nginx服务器的时间与实际时间保持同步,以避免因时间误差导致的缓存失效问题。
  • 考虑使用CDN:对于大型网站来说,使用内容分发网络(CDN)可以进一步提高网站的性能和负载能力。CDN 可以在全球范围内部署多个节点来缓存和分发资源,从而减少对源服务器的请求次数和带宽压力。

总之,通过合理配置 Nginx 的 expires 缓存,可以有效地提高网站的性能和负载能力。但请注意,缓存只是优化手段之一,还需要结合其他技术来全面提升网站的性能和用户体验。

expires

  • 语法

expires [modified] time;
  • modified]:可选参数,如果包含这个参数,则 time 是从文件最后修改时间开始计算的。如果不包含这个参数,则 time 是从当前时间开始计算的。
  • time:可以是具体的时间值,如1d(表示1天)或1h(表示1小时)等。
expires epoch | max | off;
  • epoch:设置 Expires 头字段的值为1 January, 1970, 00:00:01 GMT,实际上等同于告诉浏览器不要缓存该资源。
  • max:设置 Cache-Control 头字段的 max-age 为浏览器认为的最大值(通常是1年,实际可能有所不同)。
  • off:不修改 Expires 和 Cache-Control 头字段。
  • 上下文设置

expires指令可以在http、server、location 上下文中使用,也可以在 location 块中的 if 语句中使用(不推荐)。

配置

  • 为所有图片和CSS文件设置一个月的缓存时间:
location ~* \.(jpg|jpeg|png|gif|css)$ {
    expires 1M;
}
  • 为JavaScript文件设置更短的缓存时间(例如,1小时):
location ~* \.js$ {
    expires 1h;
}
  • 禁用某个特定目录下的缓存:
location /no-cache/ {
    expires off;
}
  • 重载配置文件
systemctl reload nginx
# 或者
nginx -s reload
# 或者重启服务
systemctl restart nginx

注意

在配置expires时,需要考虑与Cache-Control头字段的其他指令(如no-store, no-cache, must-revalidate等)的兼容性,以及它们如何影响浏览器的缓存行为。在某些情况下,可能需要同时设置expires和add_header指令来确保正确的缓存行为。
 

来自: 学习Nginx(十):提升网站负载之expires缓存icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247488265&idx=1&sn=c9f9700f67848e335d92186df7df2373&chksm=c3159b45f4621253721103cd082a440bd5d4cf408700f17e99cb7c1994589adef3d0abf1a58a&token=355315523&lang=zh_CN#rd

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux技术宅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值