
你正在开会,手机震个不停。打开一看,监控告警:CPU 100%,带宽打满,网站打不开了。
你冲回工位,发现网站上了热搜,或者被一个大V转发了。平时日活几千,现在几万人在线。服务器已经卡死了。
这时候你不可能去优化代码、加索引、重构架构。你需要的是能立刻动手的应急措施。今天聊3招,在流量暴涨的第一时间保住服务器。
先看一个数据
某电商网站,双11大促开始后的第10分钟,流量达到平时的50倍。服务器直接502。运维团队花了几分钟开启CDN缓存和页面静态化,服务器负载瞬间降了70%。活动顺利完成。
关键不是他们技术多牛,是他们提前准备了应急方案,知道第一步按哪个开关。
第一招:开启CDN缓存(让请求不落到源站)
如果你的网站已经接入了CDN(比如Cloudflare),但平时可能只加速了静态文件。这时候,可以临时把动态页面也缓存起来。
操作步骤:
- 登录CDN控制台,找到缓存规则设置
- 新增规则:针对整个网站(
/*)设置缓存,比如缓存5分钟 - 开启后,用户请求先到CDN节点,节点直接返回缓存内容,不穿透到你的源服务器
效果:源服务器的请求量可能瞬间降低80%-90%。代价是用户可能看到最多5分钟前的旧内容。但在网站快被流量打垮的紧急情况下,这是可以接受的。活动结束后可以恢复原规则。
如果你没有CDN:跳过这步,直接看第二招。
第二招:开启Nginx限流(把多余的请求挡在门外)
如果CDN已经来不及了(或者你没配CDN),请求已经涌到了你的服务器。这时候,Nginx的限流是最后一堵墙。
在Nginx配置里加上这两行:
nginx
# 定义限流规则(放在http块里) limit_req_zone $binary_remote_addr zone=mylimit:10m rate=20r/s; # 应用限流(放在server或location块里) limit_req zone=mylimit burst=30 nodelay;
效果:每个IP每秒最多20个请求,超过的直接返回503。虽然部分用户会看到错误页面,但至少服务器不会彻底卡死,正常的用户还能访问。
如果不会改配置,宝塔面板里可以点几下鼠标开启“限流”功能,不用手写代码。
紧急情况下的简化操作:如果你的网站是WordPress,可以临时安装WP Super Cache插件,一键开启“缓存模式”,也能撑一阵。
第三招:临时降级(关掉不重要的功能)
你的网站可能有很多不必要在高峰期运行的功能。比如:
- 侧边栏的“实时访问统计”
- 底部的“随机推荐文章”
- 某些不常用的API接口
操作:
- 如果这些功能是你自己写的,临时注释掉相关代码,或者加个开关
- 如果是WordPress插件,在后台临时禁用
- 如果不行,把请求重定向到一个简单的静态页面
另一个降级方式:临时把动态PHP页面转成静态HTML。比如文章详情页,直接保存成HTML文件。用Nginx的try_files配置:先找静态文件,找不到再走PHP。
nginx
try_files $uri $uri.html $uri/ /index.php?$args;
把热门页面手动生成一次HTML,后续请求直接走静态,PHP压力骤减。
效果:去掉这些“锦上添花”的功能,通常能释放20%-30%的CPU和数据库资源。
这些措施的本质
这三招的共同点:减少服务器的计算量。
- CDN缓存:让请求根本不到你服务器
- Nginx限流:把超出处理能力的请求提前挡掉
- 功能降级:砍掉不重要的事,只保核心功能
紧急情况下,保证核心服务活着。
平时要做的准备
应急措施只能救急。平时做好这3项准备,真出事才能快速响应:
- 提前熟悉CDN控制台:知道在哪里开缓存规则,提前测试过。第一次在紧急时刻上手很可能会误操作。
- 写好Nginx限流配置,但先注释掉:需要的时候,取消注释、重载配置,几秒钟就能开启。注释的配置永远不会生效,但出事时你只需要删个
#。 - 准备一个“降级开关”:在你的代码里留一个变量,一个配置文件里设成0,就能关掉非必要功能。很多大型网站都有这个设计。
- 确定服务器暂时撑不住时,主动显示一个友好页面(例如“当前访问人数过多,请稍后刷新”)。这比连接超时或白屏好得多,起码用户知道不是网站彻底坏了。
真实案例
一个在线教育平台,某天免费公开课开课,瞬间涌入上万学生。服务器CPU飙到100%,几乎无法访问。运维团队:
- 先开启了CDN全站缓存(5分钟),CPU降到60%
- 又开启了Nginx限流(每IP每秒10个请求),CPU降到30%
- 临时关闭了课程讨论区(降级),CPU降到15%
所有操作在10分钟内完成。课程正常进行,学生体验虽然有卡顿,但能听课。活动结束后,他们说:“要不是有这几招,今天肯定翻车。”
最后一句
网站被流量冲垮的时候,你不需要写代码,需要的是按开关。
提前配好CDN缓存规则,写好Nginx限流配置(先注释掉),留一个功能降级的开关。
等流量真的来了,你知道第一步点哪里,第二步按哪个按钮。这就够了。




