0%

从 disqus 切换到 disqusjs 过程及反代配置

最近把 hexo 和 主题 next 都升级到了最新版本,也把大部分 js/css 转到了 jsDelivr(国内和网宿合作),整体加载速度有了一定提升.

想着既然都搞升级了,把评论也弄正常点好了.毕竟 Disqus 在国内基本处于没法用的状态.

DisqusJS 是一个在网络状态差或无法访问 Disqus 下的 Disqus 评论展示实现,其原理是在网页加载时访问 https://disqus.com/favicon.ico 来判断客户端对 Disqus 网络连通性,在连通性差的情况下调用 Disqus API 获取数据来提供基本样式的评论展示.

Disqus 切换到 DisqusJS

因为我用的是 next(7.8.0) 主题,官方支持 DisqusJS 等多种评论系统,所以切换还是挺方便的.

  • 在主题配置文件 _config.yml 中,找到 disqus 段并把 enable 设为 false.

  • 同主题配置文件,找到 comments 段,将 active 设为 disqusjs.

  • Disqus 后台 -> Applications -> Settings 中,将你要进行反代的服务器域名填入 Settings -> Domains 中.

  • 同主题配置文件,找到 disqusjs 段,将 enable 设为 true,并将相应字段填写上从 Disqus 获取的值.

1
2
3
4
5
6
7
8
9
10
11
disqusjs:
enable: true
# API Endpoint of Disqus API (https://disqus.com/api/).
# Leave api empty if you are able to connect to Disqus API. Otherwise you need a reverse proxy for it.
# For example:
# api: https://disqus.skk.moe/disqus/
api: YOUR_REVERSE_NGINX_URL
apikey: YOUR_API_KEY
shortname: YOUR_SHORT_NAME
# apikey: # Register new application from https://disqus.com/api/applications/
# shortname: # See: https://disqus.com/admin/settings/general/
  • 修改 nginx 配置,示例如下:
1
2
3
4
5
6
7
8
9
server {
...
# for hexo-theme-next disqusjs.
location /path/to/disqus/api/ {
proxy_redirect off;
proxy_pass https://disqus.com/api/;
}
...
}

修改完毕后 nginx -t 一下,确保配置正常后 nginx -s reload 就好了.

欢迎关注我的其它发布渠道