20万篇+网页,每天几十万请求,2G内存居然扛住了。阿里云那款2核2G3M的服务器,我用来跑了7个WordPress站点。先看面板实况:负载 5%、CPU 2%(2 核)、内存 41%(774MB / 1.8GB)、网站 11 个、数据库 12 个、安全风险 38 项——这就是它”大部分时间还算从容”的样子。
很多人觉得不可思议。2G内存,跑一个WordPress都嫌吃力,你跑7个?不仅能跑,而且大部分时间还算从容。今天把真实数据和优化方法分享出来。如果你也有小内存服务器,这几招直接抄作业。
日均 33 万请求,负载仅 5%
环境是常规的 LNMP,使用的宝塔面板,当然也配了 Redis之类的。站点真实访客确实不多,但各种蜘蛛爬虫是真的猛。
| 日期 | 请求数 |
|---|---|
| 10-19 | 482,976 |
| 10-20 | 462,970 |
| 10-21 | 288,906 |
| 10-22 | 302,546 |
| 10-23 | 224,396 |
| 10-24 | 316,870 |
| 10-25 | 236,512 |
| 合计 | 2,315,176(日均约 33 万) |
每天请求数大概在 二三十万 起步,高峰期能到 四五十万。几乎全是各种蜘蛛爬虫带来的。 尤其是现在各种AI大模型的抓取爬虫,它们不带来流量,但照样疯狂消耗内存和CPU资源。
| 引擎 | 请求数 | 占蜘蛛 | 独立 IP |
|---|---|---|---|
| 字节 | 37,385 | 51.1% | 320 |
| 搜狗 | 16,162 | 22.1% | 544 |
| 必应 | 12,612 | 17.3% | 260 |
| 谷歌 | 6,362 | 8.7% | 13 |
| 未知蜘蛛 | 428 | 0.6% | 51 |
| 百度 | 123 | 0.2% | 87 |
| 360 | 19 | 0.0% | 19 |
注:上表只统计「IP 落在已知搜索引擎网段」的请求。另有 59,890 次请求 UA 自称搜索引擎、但 IP 不在任何网段内,未计入上表——这恰好说明,光看 UA 是防不住的。另外,这几个站的内容量真不小。
每个站点都有好几万篇网页,加起来数据量很大。跑到现在,其实已经开始出现性能瓶颈,比如数据库慢查询开始显现。但就算在这样的情况下,大多数情况下内存占用在50%这样的水平。
四个优化手段:限频、屏蔽 AI 爬虫、静态化、Swap
光靠硬扛是不行的。2G内存,不做任何优化早就OOM了。
| 招式 | 做法 | 作用 |
|---|---|---|
| 一、限频 | Nginx 加 limit_req,限制高频 IP | 掐掉扫描器/爬虫的瞬时并发 |
| 二、防爬 | 宝塔 Nginx 防火墙屏蔽垃圾蜘蛛 UA | 挡掉不带来流量的采集器 |
| 三、静态化 | 超级缓存预生成 HTML | 不走 PHP、不查库,直接吐静态文件 |
| 四、Swap | 开虚拟内存兜底 | 物理内存吃满时防 OOM 崩溃 |
四招如何层层拦截日均 33 万请求:从入口限频、屏蔽爬虫,到静态化直读、Swap 兜底,流量逐层被削减消耗。
第一招:Nginx 限频,掐断每秒几十次的高频请求
在 Nginx 配置里加 limit_req,限制高频恶意访问的IP。
limit_req zone=nospider burst=15 nodelay;
很多爬虫或者扫描器,一秒钟能发几十个请求。直接掐断,别让它们挤占正常的资源。
第二招:UA 黑名单屏蔽 AI 训练爬虫
宝塔Nginx有免费防火墙。开启后,屏蔽掉无意义的垃圾爬虫。
📌 示例:宝塔 Nginx 防火墙的 user_agent.json
作者把无意义爬虫的 UA 特征写进了拦截清单,大致分两类:
扫描器 / 攻击工具:WPScan、sqlmap、nmap、dirbuster、pangolin、hydra、antSword、HTTrack 等。
AI / SEO 采集器:CCBot、ClaudeBot、SemrushBot、MJ12bot、AhrefsBot、DataForSeoBot、BLEXBot、dotbot、Barkrowler 等。
文件里还带了一批 SQL 注入特征正则(如 union select、information_schema、extractvalue),在 UA 黑名单之外再做一层请求内容过滤。
只允许有价值的蜘蛛来访。 比如百度、谷歌的蜘蛛。那些搞数据训练的AI蜘蛛,直接拉黑。
第三招:全站静态化,访客直读 HTML 不走 PHP
开启超级缓存,提前生成HTML静态文件。访客来的时候,直接返回静态HTML,不走PHP,不查数据库。这是2G内存能扛住几十万请求的核心秘诀。
第四招:开启 Swap,内存见顶不崩机
2G物理内存实在太小。LNMP环境本身就要吃掉不少内存。开启Swap作为补充,当物理内存快满的时候,系统把不常用的数据换到磁盘里。虽然会损失一些性能,但能保证服务运行,防止系统直接崩溃。
2核2G,不是不能打,是看你怎么打,怎么用。用好了也能用出价值来,别只是买来吃灰!超过数万个网页,每天几十万爬虫请求,这台99元的服务器依然在坚挺。核心逻辑就四个字:减少消耗。
限频、防爬、缓存、Swap。如果你的WordPress也跑在低配机器上,感觉内存吃紧,直接把这四招安排上,立竿见影。
原文链接:2G内存的服务器,我硬塞了7个WordPress,居然没崩?我用这几招让它稳如老狗~(来源:@云知识CLOUD)






