Nginx怎么配置缓存?2024最新Nginx配置与缓存策略 网站速度提升300%
网站打开慢、用户跳失率高?别乱加服务器配置!用对Nginx配置和缓存策略,不用加预算就能让网站加载速度翻几倍,实操步骤都给你整理好了,看完就能上手改。
一、为啥Nginx优化是性价比最高的网站提速方法?
很多站长一遇到网站卡、加载慢,第一反应就是加带宽、升服务器配置,钱花了不少,速度没提多少。其实现在90%以上的网站都是用Nginx做反向代理服务,大部分人装完Nginx直接用默认配置,至少浪费了70%的性能,只要调对配置和缓存策略,不用加预算就能让网站加载速度翻2-3倍,源站压力还能降80%以上。
我上周刚帮做独立站的朋友调了Nginx配置,他的站点之前首页加载要4.2秒,用户跳失率快70%,调完之后首页加载只要1.1秒,跳失率直接降到了35%,转化率都涨了12%,真的是投入零成本,收益特别大。
二、基础Nginx配置优化,先把性能拉满
先把Nginx的基础运行参数调好,这是所有优化的前提,不用改复杂逻辑,改几个参数就行:
1. worker进程和连接数调整
🌟划重点:worker_processes参数直接设成和你的服务器CPU核心数一致就好,别瞎开多,进程开多了反而会增加CPU切换进程的开销,反而变慢。比如你用的是4核服务器,就设worker_processes 4就行。
worker_connections参数普通站点设10240就够用,高并发的电商、资讯站可以调到20480,这个参数是每个worker进程能处理的最大连接数,调对了并发承载能力直接翻几倍。
2. keepalive超时时间调整
默认的keepalive_timeout是65秒,会保留很多用户的无用连接占资源,普通站点改成15秒就行,高并发场景下可以降到5秒,能省下大量连接资源给新用户用。
3. 开启gzip压缩
把css、js、html、json这些静态文本资源都开gzip压缩,压缩比例能到60%以上,相当于原本100K的文件,传过去只有30多K,加载速度直接快一倍。
🌟提醒:图片、视频、音频这类二进制资源别开gzip,压缩不了多少还会额外占CPU资源,得不偿失。
三、核心Nginx缓存策略,省掉80%源站请求
缓存是Nginx优化里最有用的功能,说白了就是把用户经常访问的内容存在Nginx服务器上,用户下次再访问的时候直接返回,不用再去请求后端的PHP、Java服务或者数据库,源站压力直接降下来,响应速度还快好几倍。
给大家一套通用的缓存规则,普通站点直接套用就行:
1. 静态资源长期缓存
像图片、css、js、字体、图标这些基本不会变的资源,直接设置7-30天的长期缓存,返回Cache-Control: public,max-age=2592000的响应头,用户第二次访问的时候直接读本地缓存,连Nginx都不用请求,速度快到秒开。
🌟划重点:如果后续要更新这些静态资源,给资源加个版本号就行,比如把style.css改成style.v2.css,就不会出现缓存不更新的问题,完全不用担心用户看到旧内容。
2. 动态页面按需缓存
很多人觉得动态页面不能缓存,其实像商品详情页、新闻详情页、资讯列表页这种内容更新不频繁的页面,完全可以设置1-2小时的缓存,只要内容更新的时候主动清一下缓存就行。
比如电商站点的商品详情页,一天才更新一次内容,设2小时的缓存,源站的请求量直接能降到原来的10%都不到,之前扛不住1000并发的服务器,现在扛1万并发都没问题。
3. 敏感接口禁止缓存
像用户中心、购物车、支付、登录这些和用户个人信息相关的接口,一定要设置no-cache规则,禁止缓存,避免出现用户A访问看到用户B的信息的低级错误,这个是红线,千万别搞错。
四、几个避坑提醒,别调完反而把网站搞挂
1. 别盲目设置太大的缓存空间,普通站点10G-20G的缓存空间就完全够用,太大了Nginx查找缓存文件反而会变慢,得不偿失。
2. 缓存key的设置要把请求域名、路径都加进去,如果你一台服务器上部署了多个站点,不然很容易出现不同站点的缓存串了的问题,用户访问A站出来B站的内容就麻烦了。
3. 每次改完Nginx配置,一定要先执行nginx -t命令测试配置有没有语法错误,提示ok之后再执行nginx -s reload重载配置,别直接重启,万一配置错了直接把网站搞挂,影响用户访问。
本文内容参考自运维派:yunweipai.com