在上篇文章优化了博客网站的性能过后,我对页面加载速度仍感到不太满意,Cloudflare 显示大部分页面仍需要等待接近 2 秒才能完成响应。一想到我之前在 cPanel 上执行了一些比较重的操作,网页的加载速度就会下降,所以可能之前的 Host Provider 并没有给我分配多少资源来折腾,这大概率就是网页访问速度慢的重要原因之一。
为了验证这个观点,我尝试在 Homelab 中的 N100 主机上部署了一个 WordPress,并将博客网站复制了一份到这台服务器上。我发现在缺少 Cloudflare 缓存的情况下,就算是通过 Cloudflare Connector 从公网访问家庭内网中的网站都比我线上的博客网站要快 😂。
确认了是 Host Provider 的性能问题后,我决定将博客网站迁移到我的一台 VPS 上,那么这篇文章的重点终于开始了。
我的 Word Press 实例一开始就是通过 Host Provider 建立的,之前在不同的 Provider 之间迁移时,主要也是通过管理面板上提供的一键迁移功能完成操作。但我没想到的是,这些一键迁移功能所涉及的插件都是付费的,之前之所以能顺畅的使用,大概率是 Host Provider 已经为这些功能付过了钱。
虽然插件市场中也有免费的备份恢复插件,但要么是备份出来之后不让恢复,要么是恢复备份会出错, 更离谱的是有些插件备份出来的数据竟然是加密的。
不过好在管理面板提供了一个简单的 Full Backup 功能,可以将 WordPress 目录连同整个数据库 Dump 一起打包。
在我的 VPS 上,出于方便我一直没安装任何面板,唯一的管理工具是 CapRover ,你将其简单的理解为自部署版 heroku。他自带的 WordPress 的部署模板,只要简单替换一下变量,就可以快速启动一个 WordPress 容器:

在这里,需要注意的 WordPress 的 Docker 镜像默认不包含 WP-CLI,需要使用 6.9.0-cli 标签才能部署带 WP-CLI 的镜像。
由于 CapRover 的限制,部署好的 WordPress 只能通过 CapRover 的 Nginx 网关访问,而 Nginx 网关已经处理了 TLS,所以转发到 WordPress 的流量只有 HTTP。
如果你从零使用 Docker 创建 WordPress 实例,上述的情况不会影响你,但如果使用从其他地方复制过来的 WordPress 实例,就会遇到无限重定向的问题。具体表现为访问 /wp-admin 时,会响应当前重定向到当前 URL 。这时,就需要在 wp-config.php 的最顶部,添加下面的代码:
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
else
$_SERVER['HTTPS']='off';后记
上面就是迁移博客过程中比较大的坑点了,其实就算花 $9.9 买一个一键迁移插件可能也无法避开。但如果我在原来的 Provider 上加钱升级配置,可能也就不需要这次的迁移了。根据基本的经济学原理,我今天下午工作的价值就是下一档配置的 3 年订阅费,大概 $300,又省到钱了~
发表回复