文章内容
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 如何设置浏览器缓存
评论列表