一次阿里云 ECS CPU 接近 100% 的告警,最终从 Nginx 499、PHP-FPM max_children、Slowlog、W3 Total Cache Object Cache 和 Redis 一路排查到 Page Cache 冷缓存。实测发现服务器仅有 1 vCPU,而 /page/9/ 在 Cold MISS 时 TTFB 高达 10.6 秒,缓存命中后仅约 0.016 秒。最终没有提高 PHP-FPM 并发、关闭 Redis 或开启缓存预热,而是将 W3TC Page Cache 最长生命周期从 1 小时延长到 12 小时,以降低历史页面反复动态生成带来的 CPU 压力。
2026 年 7 月 28 日,英文站 en.shuijingwanwq.com 持续出现 Cloudflare 526 Invalid SSL certificate。排查发现,服务器同时保留了 RSA 与 ECC 两套 www.shuijingwanwq.com 的 acme.sh 证书记录:RSA 证书仅包含主域名和根域名,ECC 证书则额外包含英文子域 en.shuijingwanwq.com,但两套证书却共同写入同一组 Nginx 生产证书文件。当天凌晨旧 RSA 证书自动续期后覆盖了 ECC 证书,导致英文子域不再包含在 SAN 中,最终触发 Cloudflare Full (strict) 验证失败。通过恢复 ECC 三域名证书、移除旧 RSA 自动续期记录,并完成源站与 Cloudflare 公网验证后,英文站恢复 200,证书自动续期冲突也得到永久修复。
在 Ubuntu 26.04 + ThinkPad T570 环境下,原本长期稳定运行的 Samsung VGA 副屏突然出现黑屏。排查过程中发现,Ubuntu、GNOME/Mutter、DRM 与 EDID 均能正常识别副屏,但实际视频信号无法稳定维持;降低到 1024×768 后也只能短暂恢复并伴随闪烁。通过 i915 hotplug 日志、显示器自检、分辨率切换、接口重插、Emergency Reset、monitors.xml 与 gdctl 等手段逐步排除了普通软件配置问题,最终将故障范围集中到 HDMI→VGA 转换链路,并决定改用 USB-C→VGA 一体线进行下一阶段交叉验证。
本文记录一次 WordPress 双 CDN 架构下的 Query String 缓存优化实战。中文站通过 EdgeOne 自定义 Cache Key 与回源请求参数设置,让 canonical 文章 URL 的不同查询参数共用缓存,并在 MISS 回源时删除 Query String;英文站则通过 Cloudflare URL Rewrite Rule 实现相同目标。整个过程结合 HIT/MISS、Age、301、CF-Ray 与 Nginx access log 进行实际验证,最终将规则收敛为仅优化 /YYYY/MM/DD/ID/ 形式的标准文章 URL,在降低随机参数缓存穿透风险的同时保持 CDN 配置简单、清晰、易维护。
在通过 EdgeOne 屏蔽异常 Sogou UA 流量、解决 WordPress 502 后,阿里云 ECS 仍然偶发 CPU 95%~100% 告警。进一步结合 PHP-FPM Slow Log、Nginx 请求日志和 W3 Total Cache 实测发现,大量带 Query String 的前台请求会导致 W3TC Disk: Enhanced 页面缓存无法复用,使请求重新进入 PHP-FPM,完整执行 Gutenberg、Polylang、Post Views Counter、Redis Object Cache 和数据库查询。正常 URL 第二次请求 TTFB 仅约 0.1 秒,而带参数 URL 每次仍需约 7~11 秒。最终决定不逐个封禁参数,也暂不升级服务器或修改 W3TC 内部逻辑,而是在 EdgeOne 与 Cloudflare CDN 层进行 Query String 缓存键和回源 URL 规范化,从根源减少动态参数造成的缓存穿透。
在一次 WordPress 502 故障排查结束后,我继续完善阿里云 ECS 的主机监控与报警体系。排查发现原有云监控 Agent 2.1.56 已停止运行,导致 CPU、内存、磁盘等操作系统级指标长期没有数据。随后通过传统云监控「主机监控」将 Agent 升级至 4.0.0,恢复 CPU、内存、Load、磁盘、网络和公网带宽等监控,并分别为 CPU、内存、磁盘及公网流出带宽设置 Info、Warn、Critical 三级报警。结合恢复后的实际监控数据,现阶段 1 核 2G ECS 与 2 Mbps 公网带宽仍有明显余量,因此暂不升级服务器,而是先通过持续监控积累长期运行基线,让服务器运维从“故障后排查”转向“异常前预警”。
一次 WordPress 生产站间歇性 502 故障排查记录。阿里云 ECS 一度出现 CPU 100%、Load 超过 9、PHP-FPM Socket 队列达到 510/511,大量请求返回 499 和 502。通过分析 Nginx 日志发现,最近 20000 条请求中有 18455 条携带 Sogou web spider/4.0 User-Agent,并以每分钟约 500~700 次的频率持续遍历网站。随后在 EdgeOne 中通过 *Sogou* User-Agent 规则进行边缘拦截,Sogou UA 请求降至 0,PHP-FPM 队列恢复为 0/511,CPU 空闲率最高恢复到 97%,后台连续请求全部返回 HTTP 200。此次排查说明,服务器出现性能瓶颈时,不应急于升级配置,应先确认异常流量和真正的资源消耗来源。
在 WordPress 历史文章迁移过程中,将原有流程图内容转换为 MerPress Mermaid 区块后,前台出现 Syntax error in text,并显示 Mermaid 11.9.0。最初将错误的 流程图 TD 修改为 flowchart TD 后问题仍未解决,最终发现关键在于节点文本写法。将 A[节点文本] 统一调整为 A[“节点文本”] 后,包含 test()、main()、go test() 以及中英文混合内容的流程图恢复正常渲染。本文记录完整排查过程,并总结适用于 WordPress 历史内容迁移的 Mermaid 节点编写与验收规则。
2026 年 6 月 25 日,我通过 BeWild 购买了 ChatGPT Plus 3 个月订单。一个月后的 7 月 25 日,恰逢第二个月续订节点,ChatGPT 却突然出现请求失败和登录 500,让我一度怀疑 BeWild 自动续订出了问题。经过 BeWild 客服、OpenAI Status、订阅状态和官方账单多方核对,最终确认第二个月已经成功续订至 8 月 25 日,而且续订完成后无需再手动操作“已订阅续费”支付订单。期间 OpenAI 官方确实发生服务故障,从首次发现异常到状态页恢复正常约持续 3 个小时。本文完整记录这次续订、故障排查和验证过程,同时保留一个尚无法确认的细节:故障刚发生时,BeWild 是否已经完成续订。目前第二个月已经实测成功,第三个月则继续等待 8 月 25 日实际验证。
👨💻 个人品牌
王世强|PHP / Go 技术顾问
15+ 年 Web 后端开发经验,专注于系统维护、架构优化、性能调优及 Linux 运维。
持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。
为创业团队、中小企业及独立开发者提供长期技术支持与远程合作服务。
.env (14) 404 (13) add (16) AI 翻译 (13) Apache (13) Array (19) Cache (13) CentOS (23) ChatGPT Plus (12) chrome (19) Cloudflare (26) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (15) delete (31) Docker (32) Dockerfile (15) ECS (12) EdgeOne (23) environment variable (19) error (24) Failed (13) file (15) filter (20) function (13) Git (27) GitHub (17) Gitlab (15) Go (38) Google AdSense (21) GraphQL (24) GraphQL API (14) Gutenberg (27) http (21) https (21) Installation (12) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (19) Migrate (13) Module (17) Multilingual (12) MySQL (77) MySQL 5.7 (21) Nginx (56) normalize.css (24) OKX (15) OneinStack (17) PHP (67) php-fpm (16) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (57) postman (18) Query (17) queue (16) Rancher (24) Redis (47) response (13) RESTful (27) RESTful API (23) Shell (13) Shopify (19) SlyTranslate (17) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (19) Ubuntu (39) update (20) VPN (17) VS Code (13) W3 Total Cache (33) Windows 10 (46) WireGuard (26) WordPress (111) WordPress 多语言 (13) WPCode (20) Wstunnel (13) Yii (40) Yii 2 (70) Yii 2.0 (51) 命令行 (13) 技术博客 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)