Hexo+Netlify&Serverless+Disqus
最近偶然发现Netlify这个免费提供静态网页托管的网站,简直如获至宝
重新整了下博客,将博客托管至Netlify并采用Serverless代理Disqus
起因
为什么我要将本来部署在腾讯云上的博客花好大的力气搬迁到Netlify上?
- 免费
- 支持github的持续集成部署
- 体验下来比Github Pages访问速度要快
最主要是第二点,这意味着可以把hexo的代码放到github上,每次push都能自动触发编译并更新其网页。这相比于之前自己在本地编译好上传服务器省力太多了。
然后我就赶紧上手试了一下
流程
将hexo文件夹上传至github
以下是我的文件夹结构,可以不上传node_modules
需要注意的是 我用的是自己魔改的maupassant主题
所以我将其也上传至了github maupassant
然后可以看到我的hexo根目录下有一个.gitmodules
文件
如果使用自己的主题,.gitmodules
需自己新建且写入以下内容,不然Netlify会提示缺少submodule没法编译
1 | [submodule "themes/maupassant"] |
其中配置可按自己的实际情况修改
部署至Netlify
Step1: 使用github账户登录Netlify
登录成功之后点击使用Git创建新站点按钮
Step2: 选择使用github
Step3: 选择部署了hexo的那个仓库
Step4: 使用默认的命令行(hexo generate)来deploy site
Step5: 部署成功,可查看网页的效果
接着可以将自己的域名cname到netfliy提供的域名并且在netfliy上启用https
可以看到整个过程相当简单,免费的还是香啊!
Serverless+Disqus
这个主要是我之用的多说加了好多广告,于是改用Disqus
可是国内Disqus被墙了,很不方便
hexo有代理的插件,需要自己有一台国外的VPS: disqus-proxy
云服务器总是要钱的,有没有一种免费的方式呐?
有的!我们可以通过 Now
来实现免费搭建Disqus的代理服务
Now 是一个 Global Serverless Deployment 的网站, 可以实现每日 5K 次免费
invoke.
那么想法就很简单了 借鉴disqus-proxy 将本来部署在VPS上的服务端部署到Now上就完事了
代码开源在这: disqus-proxy-serverless
下载server代码并更改配置
打开一个console,输入
1 | git clone https://github.com/jacklightChen/disqus-proxy-serverless.git |
配置src目录下的config.js
1 | module.exports = { |
各种 Key 需要在 Disqus 的 API 页面 申请
重要 另外需要到 Settings => Community
里开启访客评论
部署至now
tips:没有安装now 需首先安装now
1 | npm i -g now |
然后输入以下commands
1 | cd disqus-proxy-serverless |
此时可在自己的 ZEIT 的 Dashboard 那边: https://zeit.co/dashboard
看到该服务分配的域名: disqus-proxy.1797079433.now.sh 这个域名需填在hexo的配置文件中
修改hexo的配置文件
这里其实就是使用 disqus-proxy
Step1: 在Hexo
博客目录执行
1 | npm install hexo-disqus-proxy --save |
Step2: 在你的Hexo
博客目录中修改_config.yml
文件 添加如下配置:(注意缩进和空格)
配置文件需要注意port 如果用https就是443 http就是80
1 | disqus_proxy: |