怎么在nginx中配置缓存静态文件
发布时间 - 2023-06-03 00:00:00 点击率:次1、准备事项
我想你需要一个正常工作的 nginx 软件:在ubuntu 16.04 lts 上安装 nginx,php 7 和 mysql 5.7 (lemp) 。
2 配置 nginx
可以参考 expires 指令手册来设置 http 头部过期时间,这个标记可以放在 http {}、server {}、location {} 等语句块或者 location {} 语句块中的条件语句中。一般会在 location 语句块中用 expires 指令控制你的静态文件,就像下面一样:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; }
在上面的例子中,所有后缀名是 .jpg、 .jpeg、 .png、 .gif、 .ico、 .css 和 .js 的文件会在浏览器访问该文件之后的 365 天后过期。因此你要确保 location {} 语句块仅仅包含能被浏览器缓存的静态文件。
然后重启 nginx 进程:
/etc/init.d/nginx reload
你可以在 expires 指令中使用以下的时间设置:
off让expires和cache-control头部不能被更改。epoch将expires头部设置成 1970 年 1 月 1 日 00:00:01。max设置expires头部为 2037 年 12 月 31 日 23:59:59,设置cache-control的最大存活时间为 10 年没有
@前缀的时间意味着这是一个与浏览器访问时间有关的过期时间。可以指定一个负值的时间,就会把 cache-control 头部设置成 no-cache。例如:expires 10d或者expires 14w3d。有
@前缀的时间指定在一天中的某个时间过期,格式是 hh 或者 hh:mm,h 的范围是 0 到 24,m 的范围是 0 到 59,例如:expires @15:34。
你可以用以下的时间单位:
ms: 毫秒s: 秒m: 分钟h: 小时d: 天w: 星期m: 月 (30 天)y: 年 (365 天)
例如:1h30m 表示一小时三十分钟,1y6m 表示一年六个月。
注意,要是你用一个在将来很久才会过期的头部,当组件修改时你就要改变组件的文件名。因此给文件指定版本是一个不错的方法。例如,如果你有个 javascript.js 文件 并且你要修改它,你可以在修改的文件名字后面添加一个版本号。这样浏览器就要下载这个文件,如果你没有更改文件名,浏览器将从缓存里面加载(旧的)文件。
除了把基于浏览器访问时间设置 expires 头部(比如 expires 10d)之外,也可以通过在时间前面的 modified 关键字,将 expires 头部的基准设为文件修改的时间(请注意这仅仅对存储在硬盘的实际文件有效)。
expires modified 10d;
3 测试
要测试你的配置是否有效,可以用火狐浏览器的开发者工具中的网络分析功能,然后用火狐访问一个静态文件(比如一张图片)。在输出的头部信息里,应该能看到 expires 头部和有 max-age 标记的 cache-control 头部(max-age 标记包含了一个以秒为单位的值,比如 31536000 就是指今后的一年)
# nginx
# php
# JavaScript
# mysql
# css
# JS
# location
# http
# ubuntu
# 你可以
# 你要
# 可以用
# 会在
# 设置成
# 是一个
# 我想
# 如果你
# 放在
# 有个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何记录自定义日志?(Log频道配置)
如何用PHP快速搭建高效网站?分步指南
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
制作旅游网站html,怎样注册旅游网站?
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Laravel如何实现API资源集合?(Resource Collection教程)
如何用IIS7快速搭建并优化网站站点?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
BootStrap整体框架之基础布局组件
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
Laravel怎么判断请求类型_Laravel Request isMethod用法
历史网站制作软件,华为如何找回被删除的网站?
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
iOS UIView常见属性方法小结
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
西安专业网站制作公司有哪些,陕西省建行官方网站?
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
如何快速生成高效建站系统源代码?
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
大型企业网站制作流程,做网站需要注册公司吗?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
微信小程序 wx.uploadFile无法上传解决办法
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
利用python获取某年中每个月的第一天和最后一天
JS碰撞运动实现方法详解
晋江文学城电脑版官网 晋江文学城网页版直接进入
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
装修招标网站设计制作流程,装修招标流程?
Android利用动画实现背景逐渐变暗
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Laravel用户密码怎么加密_Laravel Hash门面使用教程
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
黑客入侵网站服务器的常见手法有哪些?
如何在阿里云香港服务器快速搭建网站?
详解CentOS6.5 安装 MySQL5.1.71的方法
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
SQL查询语句优化的实用方法总结
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件


ion ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}