记一次博客迁移历程
服务器与域名
域名是之前就已经准备好了的,是在阿里云上购买的。服务器是在腾讯云上购买的轻量级应用服务器,优惠的时候入的大概六十多一年吧,不过这个价格应该不会持久,以后恢复原价了大概就是一年六百了(心疼,一发 648)。
博客由 Github Page 迁移至腾讯云服务器
2022.10.25
这篇教程不愧是保姆级教程,基本上解决了大部分的问题,步骤详细。我这种零基础小白基本上也就大半天功夫就搞好了。
将Hexo部署到阿里云轻量服务器(保姆级教程) | HJX’s Site (hjxlog.com)
下面我只把我遇到的问题,以及我觉得需要注意的地方列出。
-
在创建
repo
仓库和hexo
目录时,请更换一个目录,不要放在var
中,在后续宝塔的操作中可以避免不少麻烦(宝塔不让用var
作网站目录)。 -
如果你更换了
repo
仓库和hexo
目录,请记得修改教程中的所有相关目录。尤其是创建钩子文件post-receive
的时候#!/bin/bash
git --work-tree=[yourpath]/hexo --git-dir=[yourpath]/repo/hexo.git checkout -f--work-tree
和--git-dir
都要进行修改! -
安装宝塔时,会提示是否在
/www
目录下安装(出于纯净性的考虑它没在var
目录下安装),同意即可。 -
最好在 hexo 三连之前就给权限
chown -R git:git [yourpath]/repo/
chown -R git:git [yourpath]/hexo/不然提交时可能会出现
.user.ini
无法处理的情况。如果已经出现.user.ini
并且处理不了的话,使用chattr -i .user.ini
去除保护,并清空文件夹。给完权限,再
hexo
三连(前面clean
和generate
已经做了的话,直接deploy
就好了?)。 -
在设置
_config.yml
文件时,branch
是master
不是main
。当然,这是最省事的方法,使用其他分支应该也有办法,不过这就请你自己去找方法了。可能是默认分支是master
的原因,提交到main
是打不开网站的(hexo
文件夹是没有部署东西的)。deploy:
- type: git
repository: git@[your.ip.your.ip]:[yourpath]/repo/hexo.git #你的仓库地址
branch: master
这样,在完成那个保姆教程后,你应该可以通过你填写的 IP (你域名肯定填的公网 IP 吧。至少我是暂时填的 IP)直接访问到了。其它问题的话,问度娘吧。
域名 ICP 备案
如果服务器与域名不是同一家的话,会有点麻烦(没错的就是我!)。按照阿里云的相关文档,域名是阿里云的,而服务器是腾讯云,应当通过腾讯云平台备案。
2022.10.26
上午提交,中午备案被腾讯云驳回。
- 网站名不符合要求(大悲,丘卡的饮品店要换招牌了)。
- 采集视频中背景不是纯白(宿舍楼光线不好),人脸不是正脸(我的锅)。
下午修改后,很快腾讯云的审核就过了,感觉还没有半个小时?然后就是等待管局审批。
2022.10.27
准备公安备案,注册账号,开办主体信息提交审核。
然后仔细搜了一下,发现公安备案如果是交互式网站,需要面审或实地审核(?疫情封校也不现实啊,而且我最近时间也并不是很闲啊?!)非交互式的省事一点,但是博客的评论多半是不能要了。
2022.11.1
ICP 备案申请通过审核,准备将域名接入(ICP 备案号都下来了,开办主体申请都还没消息x)。
域名更换
由于之前 Github 上的博客我还不想放弃(毕竟评论啥的是灵魂啊),所以我决定把原来的博客从一级域名 zerolacqua.top
放在二级域名 blog.zerolacqua.top
下,这就意味着有很多需要修改的。比如 CNAME
文件需要修改, _config.yml
和 _config.butterfly.yml
中相关的 url
也需要进行替换。好在大多数都是相对地址,要改动的不是很多。朋友圈的友链页面 url
、Waline
关于本网站网址的环境变量需要修改。此外,用于网站提交的相关信息,也需要注意及时更新。
同时,别忘记修改站外的相关信息啊。比如提供新友链给友站,还有个人社交账号中的主页信息等等。
域名管理
备案号下来兴高采烈设置完解析,结果怎么也没不上,公网 IP 能进入博客,A 类型记录解析到服务器 IP 却访问不了,很是郁闷啊。
实际上,阿里云域名要想在腾讯云服务器上使用,需要在阿里云域名控制台中修改域名 DNS 服务器地址,把域名管理权交给腾讯云。然后,之前在阿里云配置的域名记得要在腾讯云重新配置一遍~可以参见:阿里云域名如何在腾讯云服务器解析使用的具体流程-魏艾斯笔记 (vpsss.net)
然后你还记得之前在宝塔中配置时网站域名填的是什么吗?如果填的不是域名,域名应该是访问不了的,记得换成你已经准备好的域名。
SSL 证书免费申请一下吧(亚洲诚信),不然 https
用不了哦~申请证书还蛮快的,在腾讯云的“我的证书”中选择“手动部署”可以下载证书的 .key
和 .pem
然后贴到宝塔里就好。
腾讯云 CDN 加速
想使用白嫖的腾讯云 CDN 流量加速,结果配了一天都没能配好,也不知道到底是哪儿出问题了……作罢作罢。
2022.11.29
事实证明,不用 CDN 真的慢出天际了,还不如我在 github 搭建的网站,等哪天我有空了再试试吧(
2023.1.8
由于这几天免费 CDN 频繁出问题,想起来自己配的腾讯云 CDN。结果居然异常地顺利。可能上次配 CDN 的时候,没有理解源站域名和加速域名的区别,导致了失败。
在配置完成后,还可以申请 SSL 证书证书(参考前述内容)。在使用中可能会出现跨域问题,需要在腾讯云内容分发网络->域名管理->高级配置
中设置 HTTP 响应头配置
(记得配置状态一定要开启,别像我一样改完配置笨笨地找半天)
可参考:
- 内容分发网络 CDN > 故障处理 > 页面展示异常-访问跨域报错
- HTTP跨域详解和解决方式 - 腾讯云开发者社区-腾讯云 (tencent.com)
- 网站调用CDN静态资源遇到跨域问题,报错CORS error | 柴郡猫 (cheshirex.com)
2024.10.7
时隔一年多,在我调整宝塔网站目录和 https 防窜站后,我意外发现我的 cdn 获取不到资源了。在仔细研究后,我才意识到是我误解了源站和回源 HOST 的概念。我把回源 HOST 设置成了 cdn.zerolacqua.top
,而实际上应该是我服务器上访问资源文件的域名。
源站是回源的 IP 或域名(域名解析成 IP),回源 HOST 是回源时在源站访问的具体站点域名。