作者:dabing(王甜甜)
valine 文档:https://valine.js.org/notify.html
github 地址:https://github.com/DesertsP/Valine-Admin
使用说明参考:https://github.com/zhaojun1998/Valine-Admin
为啥用这个呢?人官方推荐的,那肯定是比较适配的了。
使用这个 valine-admin 评论前提是你前面的评论系统已经正常使用,并且 leancloud 数据存储也配好了。
就只是添加一个邮件提醒的功能而已。
以上评论系统的怎么配?可以参考 valine 的官网文档,很详细:https://valine.js.org/quickstart.html
# 在 LeanCloud 部署 Valine-Admin
进入 LeanCloud 对应的 Valine 应用里去。
# 1. 部署 git 项目
点击 云引擎
-> WEB
-> 部署
,按 github 所说,在部署项目中填写代码库:
https://github.com/zhaojun1998/Valine-Admin
手动部署,再点击部署按钮即可。
但是作者这个代码 node.js 是 6 版本的,版本不对,使用作者的可能会部署失败。这个后面展示。
问题:会报如下这样的错
由于 node.js 版本过低导致。
解决:
- 把作者的项目 fork 到自己仓库下,修改 package.json 的 node 版本为 12.x 即可
- 当然也可以直接使用我的地址:https://github.com/dabing85/Valine-Admin
# 2. 邮件环境变量配置
点击 云引擎
-> WEB
-> 设置
,添加环境变量,添加变量如下:
我添加的都是必填,再加一个域名的参数:
-
SITE_NAME : 网站名称。
-
SITE_URL : 网站地址。
-
SMTP_USER : SMTP 服务用户名,一般为邮箱地址。
-
SMTP_PASS : SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式。QQ 邮箱获取授权码 网易邮箱获取授权码
-
SMTP_SERVICE : 邮件服务提供商,支持
QQ
、163
、126
、Gmail
、Yahoo
、 … ,全部支持请参考 : Nodemailer Supported services。 — 如这里没有你使用的邮件提供商,请查看自定义邮件服务器 -
SENDER_NAME: 寄件人名称。
-
SENDER_EMAIL : 发件人邮箱
也有其他可选参数:
- ADMIN_URL : [建议] Web 主机二级域名(云引擎域名),用于自动唤醒
- BLOGGER_EMAIL : [可选] 博主通知收件地址,默认使用 SENDER_EMAIL
- AKISMET_KEY : [可选] Akismet Key 用于垃圾评论检测,设为 MANUAL_REVIEW 开启人工审核,留空不使用反垃圾
如果没绑定域名的话,可以不填 ADMIN_URL 这个参数,也能用,只不过 leancloud 每天会有休眠 6 小时,没有请求 30 分钟就会休眠了,绑定域名是为了能做定时任务自动唤醒。(下面会做展示)
完成上面两步其实都已经可以使用了。不记得要不要重启了。自己测试测试。
# 3. LeanCloud 休眠策略
参考:LeanCloud 休眠策略
- 绑定域名
- 添加上配置项(环境变量)
- 配置定时任务
- 绑定域名
同样在 云引擎
-> WEB
-> 设置
,绑定域名。
据说以前是有 leancloud 有提供以前共享的二级域名,但是现在取消了,我这个是自己在腾讯云租的一年,618 租的,才十几块钱一年。
编一个三级域名,为了好区分我直接写 leancloud。 然后去腾讯云解析域名,记录类型是 CNAME,记录值填 leancloud 推荐的那个节点,即我下面框起来的那个。
解析完之后等等刷新一下,就显示已绑定状态了。
- 添加上配置项(环境变量)
即 ADMIN_URL :https://leancloud.dabing.cool/
可以看我上边的截图
- 配置定时任务
点击 定时任务
-> 创建定时任务
self_wake
,cron 表达式: 0 */30 0-16 * * ?
,表示每天 0 点到 16 点每半小时唤醒一次
resend_mails
, cron 表达式: 0 0 0 * * ?
,表示检查 24 小时以前有无漏发邮件,有则重发 再到部署出重启部署即可。
成功唤醒的状态码是 200
# 补充
配置了定时任务之后当天我没发现什么问题,过两天我发现日志里有报错信息:
"error":" 因流控原因,通过定时任务唤醒体验版实例失败,建议升级至标准版云引擎实例避免休眠
也有成功的时候,大部分都是从 7 点开始就是唤醒失败的。
百度了一下:
大家可以参考 [优雅解决 LeanCloud 流控问题](优雅解决 LeanCloud 流控问题 - 腾讯云开发者社区 - 腾讯云 (tencent.com)), 或者再百度看看别的。我不折腾了