使用自定义域名激活Vercel部署的Waline服务
近期对于部分 Waline 评论插件的用户来说,或许是非常的困扰时期。先是服务商 LeanCloud 发布国内提供的服务,从8月份起需要绑定自有案例域名才能正常运行。而这两天 Vercel (Waline 官方提供的免费部署方案,也是大部用户的选择)旗下的 vercel.app
域名又遭受 DNS 污染攻击,在国内无法直接访问此域名,导致众多 Waline 用户的服务直接陷入“宕机”状态,真可谓是雪上加霜。
有句话说的好:“只要思想不滑坡,办法总比困难多”。接下来就是给大家分享下,如何通过自定义域名的方式来解决上面遇到的2个问题,此方法仅供各位网友参考参考。 😄
确定方案
由于 vercel.app
域名已经被 DNS 污染,那么国内网络应该都是无法进行访问的,所以原本想直接通过已有域名 DNS 的 CNAME 对vercel.app
域名转发的想法是不能实现的。通过多次验证后,确认如下 2 套方案:
- 方案1: 有备案可用域名,直接转发Vercel DNS Server地址
- 方案2: 申请免费域名,配置 Vercel 提供的 DNS 服务器
方案1
DNS Server转发
在自有域名的 DNS 服务中添加一条记录,选择 CNAME 类型转发,记录值填写为:cname.vercel-dns.com
,参考如下:
然后在 Vercel 中找到 Waline 后端服务的项目,点击Settings
标签卡,跳转页面后点击左侧的Domains菜单项,输入你自己定义的域名点击
Add`按钮即可。
方案2
申请免费域名
可以参考之前发布的文章: 创建属于你自己的org永久域名 ,不过这里不需要借助 DNSPOD 提供的解析服务,所以在申请域名时可以直接填写 Vercel 提供的 DNS 服务,默认地址为:
ns1.vercel-dns.com
ns2.vercel-dns.com
域名申请下来后,访问 Vercel 的域名控制面板
Domains Dashboard
点击右上角的Add
按钮选择你的 Waline 项目点击Continue
按钮,再输入申请好的域名确认即可。
评论搬迁
除了域名访问的问题外,还需要注意当使用 LeanCloud 国内版作为存储时需要有自定义的备案域名,要是没有的话就只好选择国际版本。那么就要对于已有的数据进行迁移,但 Waline 自带的导入导出功能还是有些问题 #1148 ,建议最好还是使用 LeanCloud 自带的导入导出功能,不过需要进行手动的调整。
第一步是对数据进行导出,这里只需选取Counter
、Comment
和Users
三个 Schema 文件,参考如下:
第二步是对数据进行调整,需要在 Date 类型的字段中都加上 _type
标识,避免导入后 Waline 无法插入新的评论数据,为此写了个 Python 脚本进行批量的修改,参考如下:
|
|
把修改好的 json 数据,使用 LeandCloud 的导入功能重新导入,然后在 Waline 后台管理界面就能看到数据,前端也能正常的提交新评论。
吐槽感言
相信经过上述的折腾后,此时此刻的你,应该对那句“免费的东西总是最贵的”话语有种深刻的体验了吧。但是这番的折腾也还算是值得的,学习到不少的新知识,又一次锤炼的了自己的技术,也正是验证开头说的那句话“办法总比困难多”,对吧!😁