做小说聚合站的都知道,晚高峰一刷章节就报502,带宽没跑满CPU先炸了,这锅硬件绝对不背。说白了,适合放小说的免备案香港服务器不是看销售吹的G口带宽,而是看内核参数能不能扛住爬虫海啸。今天直接上配置,教你用3个参数榨干并发性能。
晚高峰502报错的排查思路
别一报错就重启,先看看PHP-FPM的日志。小说站全是数据库查询,晚高峰并发一上来,默认的50个max_children瞬间被占满,后续请求全在队列里等死。这时候Nginx的worker_connections要是没调高,直接断开连接。别问我为什么知道,昨晚刚帮客户擦完屁股。
- 把
pm.max_children从50改成200,别怕内存爆,现在的机器不差这点RAM。 - 开启
keepalive_requests,让爬虫和读者复用TCP连接,减少握手开销。 - 把BGP线路的TCP窗口调大,跨网回源的时候能少丢几个包。
三种主机扛并发实测数据
| 主机类型 | 爬虫并发吞吐量 | 单Worker内存占用 | 高负载TTFB |
|---|---|---|---|
| 廉价共享HK主机 | 120 Req/s (直接宕机) | 45MB (内存泄漏) | 3500ms+ |
| 标准CN2 VPS (未调优) | 450 Req/s (开始丢包) | 32MB | 1200ms |
| StrataServer HK BGP独服 (压榨后) | 2800+ Req/s (稳如老狗) | 18MB (深度压缩) | 180ms |
买大带宽独服的排雷实录
日UV不到1万的纯静态小说站,千万别买大带宽独服,用普通共享主机加CDN缓存足够,买独服纯属烧钱。只有当你每天面临几十万章节更新,且被同行恶意CC打穿的时候,才需要上StrataServer这种带硬防和高防IP池的BGP独服。记住,带宽再大,Nginx配置拉胯也是白搭。
# 实时监控PHP-FPM进程状态,抓出吃内存的元凶
watch -n 1 "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | grep php-fpm | head -n 10"
# 查看Nginx当前活跃连接数,判断是否被CC
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
技术主理人档案:老林,14年CDN与边缘缓存实战经验,前某大型小说聚合站运维总监。专治高并发纯文本站点,曾花三个月帮客户排查MySQL主从延迟导致的章节更新卡顿问题,靠喝浓茶和写Shell脚本续命。
立刻去查你的PHP-FPM日志,别让502报错赶走读者。需要抗CC的免备案机器,直接联系StrataServer拿测试IP进行并发压测,今晚就解决卡顿问题。