我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在nginx中缓存静态文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在nginx中缓存静态文件

这篇文章将为大家详细讲解有关怎么在nginx中缓存静态文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

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 天)

例如:1h40m 表示一小时三十分钟,1y6M 表示一年六个月。

注意,要是你用一个在将来很久才会过期的头部,当组件修改时你就要改变组件的文件名。因此给文件指定版本是一个不错的方法。例如,如果你有个  javascript.js 文件  并且你要修改它,你可以在修改的文件名字后面添加一个版本号。这样浏览器就要下载这个文件,如果你没有更改文件名,浏览器将从缓存里面加载(旧的)文件。

除了把基于浏览器访问时间设置 Expires 头部(比如 expires 10d)之外,也可以通过在时间前面的 modified 关键字,将  Expires 头部的基准设为文件修改的时间(请注意这仅仅对存储在硬盘的实际文件有效)。

expires modified 10d;

3 测试

要测试你的配置是否有效,可以用火狐浏览器的开发者工具中的网络分析功能,然后用火狐访问一个静态文件(比如一张图片)。在输出的头部信息里,应该能看到  Expires 头部和有 max-age 标记的 Cache-Control 头部(max-age 标记包含了一个以秒为单位的值,比如 31536000  就是指今后的一年)

怎么在nginx中缓存静态文件

4 链接

nginx 的 Http 头部模块(HttpHeadersModule):  http://wiki.nginx.org/HttpHeadersModule

关于“怎么在nginx中缓存静态文件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在nginx中缓存静态文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Nginx 禁用静态文件缓存的配置方法

Nginx禁用静态文件缓存方法:了解配置选项:expires、cache-control和proxy_cache_bypass。配置Nginx:在配置中添加代码,比如expires0或cache-control:no-cache。配置特定文件类型:使用proxy_cache_bypass指令针对特定文件类型禁用缓存。重新加载Nginx:sudoservicenginxreload。验证配置:使用curl-Ihttp://example.com/image.jpg检查响应头。
Nginx 禁用静态文件缓存的配置方法
2024-04-02

laravel静态文件如何缓存清除

本篇内容介绍了“laravel静态文件如何缓存清除”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!原理首先,让我们看看浏览器如何缓存静态文件。
2023-07-05

java静态类中缓存数据怎么实现

在Java中,可以使用静态变量来实现数据的缓存。静态变量是与类关联的变量,它们在整个应用程序的生命周期内都保持不变,并且可以被所有类的实例共享。以下是一种实现缓存数据的方法:创建一个静态类,其中包含一个静态变量来存储缓存的数据。publ
2023-10-27

无需插件wordpress生成静态缓存文件的方法

说起wordpress生成静态缓存的话首先想到的就是WP Super Cache插件,确实如此,大多数的wordpress站长们都在使用. 但是永远都有那些纠结完美派的人,不喜欢用插件的人也十分的多,而今天介绍的非插件搞定wordpress
2022-06-12

怎么在nginx中使用rewrite 配置伪静态

本篇文章为大家展示了怎么在nginx中使用rewrite 配置伪静态,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 *
2023-06-08

Django中怎么处理静态文件

本篇文章为大家展示了Django中怎么处理静态文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.Django 对css静态文件的处理我们先来看Django 对css静态文件是怎么处理的,一起来实
2023-06-02

静态文件怎么在Spring MVC中进行访问

这篇文章将为大家详细讲解有关静态文件怎么在Spring MVC中进行访问,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。方案一:激活Tomcat的defaultServlet来处理静态文件Xm
2023-05-31

在Django中如何设置静态文件

在Django中设置静态文件需要进行以下步骤:1. 在你的项目的根目录下创建一个名为`static`的文件夹。这个文件夹将用来存放你的静态文件,如CSS、JavaScript和图片等。2. 在你的项目的`settings.py`文件中,找到
2023-10-09

Tomcat怎么处理静态文件

Tomcat 通常会使用 DefaultServlet 来处理静态文件。DefaultServlet 是 Tomcat 自带的一个 servlet,用于处理静态资源文件,例如 HTML 文件、CSS 文件、JavaScript 文件、图片等
Tomcat怎么处理静态文件
2024-03-07

怎么在电脑中找到IE缓存文件夹

这篇文章给大家分享的是有关怎么在电脑中找到IE缓存文件夹的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。解决方法/步骤:1.直接打开电脑中的IE浏览器,随后点击工具并选择internet选项进入。2.开始在弹出的界
2023-06-27

ThinkPHP中怎么缓存文件路径

今天小编给大家分享一下ThinkPHP中怎么缓存文件路径的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。理解ThinkPHP的
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录