Nginx缓存静态资源,减轻PHP与数据库压力

当网站访问变慢、PHP-FPM进程频繁跑满、数据库连接数飙升时,很多问题其实出在静态资源重复请求上。
Nginx缓存静态资源,减轻PHP与数据库压力,是零基础站长也能快速上手的优化手段。
本文从准备条件讲起,逐步配置缓存规则,并给出避坑与验证方法,帮你把图片、CSS、JS等文件直接由Nginx返回,不再反复穿透到PHP和数据库。

先确认环境与缓存目标

操作前需要一台已安装Nginx的服务器,并确认网站根目录位置。
以常见LNMP环境为例,网站根目录可能是/home/wwwroot/你的域名。
你可以通过nginx -v查看版本,用nginx -t检查配置语法。

需要缓存的静态资源通常包括:

  • 图片:.jpg、.png、.gif、.webp
  • 样式与脚本:.css、.js
  • 字体与图标:.woff、.woff2、.ttf、.svg
  • 其他:.ico、.pdf

核心判断:如果这些文件每次访问都经过PHP处理或查询数据库,就值得开启Nginx缓存。

配置Nginx缓存静态资源

打开站点配置文件,通常位于/usr/local/nginx/conf/vhost/你的域名.conf或/etc/nginx/conf.d/你的域名.conf。
在server块内添加以下规则:

location ~* \.(jpg|jpeg|png|gif|webp|css|js|woff|woff2|ttf|svg|ico)$ {
    expires 30d;
    add_header Cache-Control "public, max-age=2592000";
    access_log off;
}

这段配置告诉浏览器和Nginx:静态资源缓存30天,期间不再向PHP请求。
注意expires 30d和max-age单位是秒,2592000秒等于30天。

保存后执行nginx -t测试语法,通过后重载Nginx:

nginx -s reload

如果使用宝塔面板,可以在“网站”->“设置”->“配置文件”中直接修改,保存后重载服务。

避坑:缓存不是万能,注意这些细节

不要缓存动态接口。
上述规则只匹配静态后缀,但如果你有.php伪静态或API路径,不要误加入缓存列表。

缓存时间不宜过短或过长。
30天适合不常更新的图片和字体;
CSS和JS如果频繁改版,可以缩短到7天,或通过文件名哈希(如style.a1b2c3.css)强制更新。

开启缓存后要清理旧缓存。
如果修改了静态文件但浏览器仍加载旧版,可强制刷新(Ctrl+F5)或修改文件名。

Nginx缓存与浏览器缓存是两回事。expires主要控制浏览器缓存,Nginx自身不会存储文件副本,而是告诉浏览器“下次别再问我”。
真正减轻PHP压力的是浏览器不再重复请求。

验证缓存是否生效

配置完成后,用浏览器开发者工具(F12)打开“网络”面板,刷新页面,查看静态资源的响应头。
如果看到Cache-Control: public, max-age=2592000和Expires日期,说明缓存已生效。

也可以使用curl命令检查:

curl -I https://你的域名/style.css

观察返回头中是否有Cache-Control和Expires字段。
同时,观察服务器负载:top命令查看PHP-FPM进程CPU占用是否下降,mysqladmin status查看数据库查询量是否减少。

可独立摘录的结论:Nginx缓存静态资源后,浏览器在缓存有效期内不会重复请求这些文件,因此PHP和数据库的请求量会明显下降。

常见疑问

问:缓存后网站样式错乱怎么办?
答:通常是浏览器缓存了旧CSS。强制刷新或修改CSS文件名加版本号即可。

问:所有静态资源都适合缓存30天吗?
答:不。经常更新的图片或JS建议缩短时间,或使用文件名哈希。

问:Nginx缓存能替代CDN吗?
答:不能完全替代。Nginx缓存主要减轻源站PHP压力,CDN还能加速全国访问,两者可以配合使用。

问:配置后Nginx报错怎么排查?
答:先运行nginx -t查看具体错误行,常见问题是缺少分号或路径错误。

按以上步骤配置后,你可以用ab或wrk简单压测对比,观察请求静态文件时PHP-FPM的活跃进程数是否下降。
如果效果不明显,检查是否有其他动态请求绕过了缓存规则。

分享到:
上一篇
Nginx健康检查,负载均衡后端节点监控
下一篇
MySQL慢日志开启,定位拖慢网站的SQL语句
1
系统公告

关于香港云优质服务器IP地址更换的通知

尊敬的客户: 因原IP运营商大幅涨价,为避免成本转嫁至用户,我司决定更换IP服务商。本次更换后,您的续费价格将保持不变,且新IP网络质量与服务标准不受影响。新IP已分配至后台,即刻生效(更换的新IP都是香港原生IPv4)。 涉及 IP 段: 45.192.x.x 旧 IP 停用时间: 2026 年 12 月 1 日
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意