换完服务器,页面刷出来还是老样子,后台一查,数据全在新库里躺着。这场景我碰上不止一回。十个说自己迁移失败的,多半不是迁移失败,是缓存没清。网站迁移ip变更缓存没清等于白改,这话听着糙,理不糙——旧IP在中间那一堆缓存里能活很久,用户的请求根本没落到新机器上,你在新机上折腾一整晚,等于给空气做优化。

先数清楚有几层东西替你记着旧地址
从浏览器往外数:浏览器自己缓存一份,操作系统一份,家里路由器一份,运营商递归DNS一份,CDN边缘节点一份。进了服务器,nginx 有 fastcgi_cache,PHP 有 opcache,Redis 里有对象缓存,页面缓存插件还吐出一堆静态 HTML。我说这玩意儿像楼道里贴的通知,你把自家门上那张撕了,隔壁单元门口还贴着复印件,来人照样按旧地址敲门。
顺序上我一般从外往里捋:域名解析、CDN、源站、应用层。倒着查也能查到,就是容易绕圈,尤其手里同时开着三个控制台的时候,点着点着就忘了自己刚才清的是哪一层。
网站迁移ip变更缓存没清等于白改,DNS这层最磨人
解析记录改完,不等于生效。权威DNS那边是一改就变,可各地递归DNS手里还攥着旧答案,TTL 写多长就等多久,TTL 一天就是最长等一天。查法不复杂:`dig 你的域名 +short`,再 `dig @8.8.8.8 你的域名 +short`,两个结果对不上,说明你本地或者某个递归节点还没换过来。用 nslookup 也行,看的是同一个东西,只是输出啰嗦点。
老办法是先动 TTL。迁移前把 TTL 调小,等一个旧 TTL 周期过去,再切解析,切完再调回来。土是土,管用。不过调 TTL 这一步本身也得等原来的缓存过期,所以那种上午改完解析、下午就盯着看效果的,多半是在跟自己较劲,越看越急,最后把好好的配置改乱了。
CDN 那头不回源,后端改到天亮也白搭
源站 IP 变了,CDN 的回源配置还指着老地址,用户看到的就还是老机器上的页面,你在新机上改的模板一个都露不出来。要动的地方三处:回源地址(有的地方叫回源host)、刷新缓存、有条件的话再预热。各家控制台的按钮叫法不一样,这块以服务商文档为准,别照着我这几句话就点下去。
还有个容易漏的细节:缓存key 里带不带参数、带不带cookie,会影响刷新干不干净。首页刷了新,列表页还是旧的,多半是缓存key 把这两个URL 当成了不同对象。刷新的时候按目录刷,比一个个点URL 省事得多,也少漏。
机器内部那几层,不看文档想不到
PHP 的 opcache 就挺阴。代码替换了,不 reload php-fpm,它还在跑旧文件,尤其 opcache.validate_timestamps 关掉的环境,能一直跑到你重启。`systemctl reload php-fpm` 顺手再 `opcache_reset()`,落地更快,这两下别只做一半。
Redis / Memcached 里存的旧域名、旧IP、旧配置、页面片段,也得清。清之前看清楚 key 前缀,别一把 flushall 把 session 也端了,登录用户全体掉线,电话很快就来。带环境前缀的,只删自己那一段,别人家的业务线还在跑。
页面缓存插件、wp-content/cache、框架自己的 cache 目录,直接删目录最干脆,插件后台再点一次清空。Laravel 那套就 artisan cache:clear 加 config:clear,别只清一半,配置缓存留着照样读旧值。
数据库和配置里,旧地址也可能留着
文章正文里的图片还指着老域名、options 表里硬编码了旧地址、多站点配置里的 home 和 siteurl 没改——这些不清,前端清得再干净,页面一渲染又把旧地址吐回来。改之前先备份,替换语句写好了先在从库或者本地跑一遍,别一上手就是生产库,手一滑就是另一场事故。
验证这一步别偷懒
别拿“我这边看着正常”当结论。`curl -sI https://你的域名 | egrep -i ‘server|x-cache|age|via’`,X-Cache 还是 HIT、age 还挺大,说明你还蹲在缓存里没出来。再拿手机流量开一次网页,公司宽带开一次,两个出口的结果对比着看,比在同一个网络里刷十遍有用。有条件再挂个外地节点测一下,别只信自己这台电脑。
收尾清单,照着勾一遍
迁移前把 TTL 压小,留出旧缓存过期的时间;解析改完,dig 两三个递归节点对一遍;CDN 改回源、按目录刷、该预热就预热;reload php-fpm、清 opcache;Redis 里带环境前缀的 key 清掉;页面缓存目录删干净;数据库和配置文件里搜一遍旧域名、旧IP;最后 curl 加多网络实测。这一串看着长,跑一遍也就一会儿功夫,比事后返工划算。
最后还是那句提醒:别挑周五下午切生产。留个回滚窗口,真出问题先把解析切回去,人稳住了再慢慢查缓存,比在现场一边冒汗一边翻配置靠谱得多。迁移这活儿不难,难的全在收尾那几下。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!