文章内容
2022/5/7 18:32:32,作 者: 黄兵
Nginx 如何设置浏览器缓存
最近将有一些服务器变成 CDN 服务器,主要是存储一些静态文件,但是在网站请求 CDN 资源的时候,浏览器不会缓存,每次都会请求,这样无疑严重影响网站加载速度,于是据需要浏览器缓存。
下面是在 Nginx 中如何设置浏览器缓存。
1、我们使用如下命令修改 Nginx 配置文件:
sudo vi /etc/nginx/sites-available/default
2、增加如下内容:
. . . # Default server configuration # # Expires map map $sent_http_content_type $expires { default off; text/html epoch; text/css max; application/javascript max; ~image/ max; ~font/ max; } server { listen 80 default_server; listen [::]:80 default_server; expires $expires; . . .
在此处添加以下两个新部分:一个在 server
块之前,用于定义缓存不同文件类型的时间,另一个在其内部,用于适当地设置缓存标头。
块之前的 server
部分是一个新 map
块,它定义了文件类型和该类型文件应该被缓存多长时间之间的映射。
我们在这张地图中使用了几种不同的设置:
default
设置为off
,不会添加任何缓存控制标头。对于内容来说,这是一个安全的设定,我们对缓存的工作方式没有特别的要求。- 对于
text/html
,我们将值设置为epoch
。这是一个明确导致不缓存的特殊值,它强制浏览器始终询问网站本身是否是最新的。 - 对于
text/css
和application/javascript
,它们是样式表和 JavaScript 文件,我们将值设置为max
。这意味着浏览器将尽可能长时间地缓存这些文件,从而大大减少请求的数量,因为这些文件通常有很多。 - 最后两个设置是
~image/
和~font/
,它们是正则表达式,将匹配所有包含image/
或font/
在其 MIME 类型名称中的文件类型(如image/jpg
、image/png
或font/woff2
)。与样式表一样,网站上的图片和网络字体都可以安全地缓存以加快页面加载时间,因此我们也将其设置为max
。
3、测试 Nginx 配置与重新加载配置:
sudo nginx -t sudo nginx -s reload
这样就完成了对 Nginx 浏览器缓存的设置,下面看一下效果:
同时在此处可以查询常见 MIME 类型列表。
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - Nginx 如何设置浏览器缓存
评论列表