最近hexo博客的评论系统valine遇上一点问题,本篇就来记录下我的解决方法。
1 LeanCloud流控问题
如果用valine评论系统的同学最近打开valine部署的日志可能会发现诸如此类的信息。
事实上我在valine的用户群里有看到相关的官方消息。
其实就是大家都用这套系统,导致有点负载不了。因此官方做了控制。所以解决方式无非就是交钱(付费版不限制)或者用其他方式唤醒LeanCloud。这个的方案目前我看到的有几种,有一位大佬写了博客记录。下面是该大佬相关的博客解决方案记录。具体内容大家可以移步他的博客看相关解决方案。
因为我自己有阿里云的服务器,所以我的解决方法就是在服务器上设置定时任务唤醒即可。如果没有服务器的同学欢迎看上面的博客寻求其他解决方案。这个方法其实在最早的邮件通知里就有提到。
Hexo 优化 --- 支持邮件通知的评论 Valine 增强版
唤醒LeanCloud的软件是crontab,这个是Linux的定时执行工具,而且是内置服务。只需要做一下配置即可。我的系统是Ubuntu。首先改下cron的默认配置。
vim /etc/rsyslog.d/50-default.conf
用vim打开以后可以发现这个问题,这个时候只需要把前面的#去掉再保存。然后重启服务。
service cron restart
接下来只需写定时任务即可。
crontab -e
由于我没有设置默认的编辑器。因此会跳出这个界面。
如果想设置默认的,可以用这个语句。
#以下两行任选其一
export EDITOR=vim
export EDITOR=/usr/bin/vim.basic
然后输入如下的定时器代码。
*/20 7-23 * * * curl https://你配置的域名前缀.leanapp.cn
接下来只需保存退出,按Ctrl键和O键保存,然后回车确定。
出现这个意为成功。
这里还参考了几篇相关文章,链接会在最后一并给出。
2 DaoVoice
由于前几天不小心关闭了163的SMTP服务,又有点小差错,没法立即修复valine评论。我考虑了下,增加了DaoVoice的在线聊天功能。这个功能在上一次的优化中有提到,但是没有设置。这次补上。
首先需要注册这个网页。然后在自己的登陆界面点击应用设置,然后点击安装到网站。这里打码的是你的id。接下来只需要把你的id放到主题里。
首先是在Next主题的配置文件博客/themes/next/_config.yml末尾中添加用户ID。
daovoice: true
daovoice_app_id: 用户ID
接着打开/themes/next/layout/_partials/head.swig文件添加如下代码:
{% if theme.daovoice %}
<script>
(function(i,s,o,g,r,a,m){i["DaoVoiceObject"]=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;a.charset="utf-8";m.parentNode.insertBefore(a,m)})(window,document,"script",('https:' == document.location.protocol ? 'https:' : 'http:') + "//widget.daovoice.io/widget/0f81ff2f.js","daovoice")
daovoice('init', {
app_id: "{{theme.daovoice_app_id}}"
});
daovoice('update');
</script>
{% endif %}
这样子就可以集成DaoVoice的在线聊天功能了。当然也可以在DaoVoice的官网调整聊天窗口。
最终效果。
参考文章: