Nginx expire配置

Nginx expire配置教程

Nginx 中的 expires 起到控制页面缓存的作用,合理的配置 expires 可以减少很多服务器的请求。要配置 expires,可以在 http 段中或者 server 段中或者 location 段中加入。

Nginx expire详解

语法

expires [time|epoch|max|pff]

默认值

expires off;

使用环境

http,server,location

说明

expires 指令控制 HTTP 应答中的 “Expires” 和 “Cache-Control” Header 头部信息,启动控制页面缓存的作用。time 可以使用正数或负数。“Expires” 头标的值将通过当前系统时间加上设定 time 值来设定。

time 值还控制 “Cache-Control” 的值,负数表示 no-cache,正数或零表示 max-age=time。

expires 使用了特定的时间,并且要求服务器和客户端的是中严格同步。而 Cache-Control 是用 max-age 指令指定组件被缓存多久。

对于不支持 http1.1 的浏览器,还是需要 expires 来控制。所以最好能指定两个响应头。但 HTTP 规范规定 max-age 指令将重写 expires 头。

expire设置格式

格式

expires 30s;#30秒 expires 30m;#30分钟 expires 2h;#2个小时 expires 30d;#30天

注意点

服务器的日期要准确,如果服务器的日期落后于实际日期,可能导致缓存失效。

备注

304 也是一种很好的缓存手段。原理是: 服务器响应文件内容时,同时响应 etag 标签(内容的签名,内容一变,他也变), 和 last_modified_since 2 个标签值。

浏览器下次去请求时,头信息发送这两个标签,服务器检测文件有没有发生变化,如无,直接头信息返回 etag,last_modified_since 浏览器知道内容无改变,于是直接调用本地缓存。

这个过程,也请求了服务器,但是传着的内容极少,对于变化周期较短的,如静态 html, js, css 比较适于用这个方式。

案例

我们首先,使用 vim 打开 nginx 的默认配置路径,具体命令如下:

vim /etc/nginx/conf.d/default.conf

如下图所示:

59_nginx expire配置.png

我们执行如上命令,打开配置文件,并增加 expire 配置,具体配置如下:

location ~* \.(jpg|jpeg|gif|bmp|png){ expires 1d;#缓存1天 }

加入之后,配置如下图所示:

60_nginx expire配置.png

现在,我们重新加载配置,即可生效。

Nginx expire配置总结

Nginx 开启 expire 压缩功能, 可以使网站的 css、js 、xml、html 文件在传输时进行压缩,提高访问速度, 进而优化 Nginx 性能。