最近趁着周末,把这个小站里里外外做了一次彻底的体检。折腾了大半天,发现的问题比预想的多,也踩了不少坑,索性整理成一篇记录,算是给自己留个底,也给同样在折腾wordpress的人一点参考。
一、被缓存掩盖的"假正常"
先说个现象:打开网站首页,鼠标一切正常,功能也都能用,监控显示一切 healthy。但当访问一篇没有命中缓存的文章时,首屏要等 3 到 20 秒才出来。
第一反应自然是缓存没配好。但翻遍配置才发现,页面缓存插件(WP Rocket)和 CDN 层的缓存规则都是正常的,命中率也不低。真正的问题藏在下面:
- 服务器只有 2 核 768MB 内存,属于很小的小机器;
- 数据库缓冲池(innodb_buffer_pool_size)只配了 16MB——这是宝塔安装时的默认值,从没动过。
16MB 是什么概念?我从慢查询日志里翻到同一条语句反复出现:
# Query_time: 7.099142 Rows_sent: 534 Rows_examined: 576
SELECT option_name, option_value
FROM wp_options
WHERE autoload IN ( 'yes', 'on', 'auto-on', 'auto' );
扫描 576 行的数据,耗时 7 秒。这不是 SQL 写得烂,而是一个 16MB 的缓冲池根本装不下 InnoDB 的索引页,每次查都要去读盘,而这台机器的内存又小、swap 一直在用,读盘自然慢到离谱。
把缓冲池调到 128MB 之后,同样的页面回源访问从 3~20 秒降到了 0.4~0.7 秒。顺带还有个意外收获:swap 使用量从 413MB 降到了 331MB——数据留在内存里,内存管理器自然不用再费劲换页了。
二、"能打开"不等于"能用"
顺手扫了下日志,发现访问记录里混着一堆奇怪的路径:
/.env
/.git/config
/graphql
/trace.axd
/s/9313e2739313e2034323e2330313/_/;/META-INF/maven/...jira...
/___proxy_subdomain_whm/login
/login.action
全是漏洞扫描器在批量探测。顺手也把服务器上几个不该暴露的服务端口收窄了——原来ERP 的服务端口是直接对外监听的,任何人绕过反向代理就能直接摸到登录页。改成一绑定 127.0.0.1 之后,外部直连返回的是空响应,只有走正常的 HTTPS 入口才能访问。
这大概是这次最有性价比的一个改动——配置只动了一行,攻击面却小了一大截。
三、被自己的缓存"骗"了
SEO 部分也踩了个有意思的坑。为了补齐 canonical标签,我写了个小插件输出。结果页面上出现了两个canonical。
第一反应是缓存没清干净,用了很多种办法去清:删插件缓存目录、清对象缓存、清 CDN 缓存……全试过了,还是两个。折腾了半天才想明白:不是缓存的问题,是两个代码源都在输出同一个标签——WordPress 核心自带一个,我写的插件又输出一个,两边谁也没让谁。
更有意思的是,换主题之后问题又变了一次。新主题自己也输出canonical,于是变成三个可能来源。这时候最简单的做法反而是:让插件彻底闭嘴,把这件事完全交给主题处理。改完之后canonical 才稳定在一个。
这里想说的是:不要用"清缓存"来掩盖配置冲突。缓存只是忠实地把你错误的配置缓存了下来而已。
四、审核卡住的原因藏在后台里
申请广告联盟的时候被拒了,查原因才发现:隐私政策页面其实早就写好了,但一直存着草稿没发布。对于爬虫来说,草稿页等于不存在。
顺手把联系页补齐了,又在页脚加了两个页面的入口——审核要求"网站应有完整的联系方式和隐私政策,且可被访问到"。这类要求其实都指向同一件事:让机器能顺畅地爬到你想被看见的内容。
五、换主题这件事,没那么难
最后把主题换成了 Puock。之所以敢直接换,是因为先做了三重备份:数据库、主题目录、附件目录。换完逐一验证:文章页、页面、站点地图、接口,全部 200,一篇内容没丢。
唯一一个小插曲:新主题里有段代码用了 PHP 7.3 才支持的语法(函数参数后的尾随逗号),而这台机器还是 PHP 7.2,直接报解析错误。不影响前台显示,只影响后台菜单注册。改掉之后整个主题的语法检查全绿了。
由此也确认了一件事:小内存机器换主题是可行的,前提是先备份、先验证、遇到报错就定位到具体文件。前台能访问≠没问题,得挨个页面点过去才算数。
写在最后
这次维护最大的收获不是某个具体配置,而是几个反复验证过的经验:
- 慢不一定是缓存的锅,先去看慢查询日志,数据库缓冲池是最容易被忽略的一环;
- 能打开不等于能用,改完要挨个页面验证,包括边界情况;
- 清缓存解决不了配置冲突,重复输出就要找到两个来源,而不是删缓存;
- 换主题前先备份,三重备份花不了五分钟,换回主题则只要一秒。
小站没有大站的资源,但每一次维护都可以做得扎实一点。这些记录留在这里,算是给未来的自己留一份可以快速翻查的笔记。






























