宝塔如何开启 Nginx 缓存加速静态资源加载速度

文章导读
在宝塔面板中开启 Nginx 缓存加速静态资源,主要通过修改网站配置文件添加 expires 规则或安装 Nginx 缓存插件实现。适用静态资源较多的站点,风险在于更新文件后用户可能无法立即看到最新内容。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

在宝塔面板中开启 Nginx 缓存加速静态资源,主要通过修改网站配置文件添加 expires 规则或安装 Nginx 缓存插件实现。适用静态资源较多的站点,风险在于更新文件后用户可能无法立即看到最新内容。

先说结论:配置浏览器缓存策略是最直接手段,无需额外插件即可生效。

  • 先定位:确认站点静态文件类型(图片、CSS、JS)。
  • 先做:在网站配置文件中添加 location 缓存规则。
  • 再验证:检查响应头 Cache-Control 是否包含 max-age。

命令速用版

将以下配置片段添加到宝塔网站配置文件的 server 块中,针对常见静态资源设置 30 天缓存:

location ~* \.(gif|jpg|jpeg|png|bmp|swf|css|js|ico)$ {
    expires 30d;
    access_log off;
}

若需更精细控制,可添加 Cache-Control 头:

add_header Cache-Control "public, max-age=2592000";

为什么会这样

Nginx 缓存通过减少服务器磁盘 I/O 和带宽消耗来提升加载速度。浏览器缓存静态资源后,再次访问时无需向服务器发起请求,直接读取本地文件,从而降低服务器负载并缩短页面加载时间。

分步处理

第一步,登录宝塔面板,点击左侧【网站】,找到目标站点点击【设置】。

第二步,进入【配置文件】选项卡,在 server { ... } 块内部查找或新增 location 规则。

第三步,粘贴上述静态资源缓存配置,确保正则表达式覆盖所需文件扩展名。

第四步,点击【保存】,宝塔会自动重载 Nginx 配置,无需手动重启服务。

第五步,若使用宝塔 Nginx 缓存插件,需在【软件商店】安装后启用,并设置缓存目录和清理规则。

宝塔如何开启 Nginx 缓存加速静态资源加载速度

怎么验证是否生效

使用 curl 命令检查响应头,确认是否存在 Cache-Control 或 Expires 字段:

curl -I https://yourdomain.com/static/style.css

观察返回头中是否包含 expires 或 cache-control: max-age=...。也可在浏览器开发者工具【Network】面板查看资源状态码,第二次请求若显示 200 OK (from cache) 或 304 Not Modified,则缓存生效。

常见坑

动态页面被误缓存:不要对 PHP 动态脚本文件设置强缓存,否则用户可能看到旧页面内容。

文件更新不生效:修改静态文件后,浏览器可能仍使用旧缓存,需通过文件名版本控制(如 style.v2.css)强制更新。

磁盘空间占用:若使用 Nginx 代理缓存(proxy_cache),需监控缓存目录大小,避免占满磁盘。

常见问题

如何强制清除客户端缓存?

无法直接清除用户浏览器缓存,需修改文件名或在 URL 后添加版本参数。

HTTPS 站点配置是否相同?

相同,Nginx 缓存配置与协议无关,HTTP 和 HTTPS 共用同一套 location 规则。

缓存时间设置多久合适?

静态资源建议 7 天至 30 天,频繁更新的文件建议缩短时间或配合版本控制。

参考来源

  • Nginx Official Documentation, "Module ngx_http_headers_module", https://nginx.org/en/docs/http/ngx_http_headers_module.html
  • Nginx Official Documentation, "Module ngx_http_proxy_module", https://nginx.org/en/docs/http/ngx_http_proxy_module.html