hexo部署到coding page以及zeit.co

之前把wordpress上的文章都迁移到了github page上,改为使用hexo生成的静态网站,但是发现百度爬虫无法爬取github page上的资源,所以考虑用coding做一个镜像站,采用双部署的方法来发布网站。

github page coding zeit对比

之前把wordpress上的文章都迁移到了github page上,改为使用hexo生成的静态网站,但是发现百度爬虫无法爬取github page上的资源,所以考虑用coding做一个镜像站,采用双部署的方法来发布网站。 但是发现网上的绝大多数关于使用coding page(几乎所有)教程都是过时的,coding新建项目时把项目命名成xxx.coding.me之后访问显示404,找遍了网站都没找到生成page的选项。最后在一番折腾之后,在团队实名认证这里看到了_进行实名认证之后可以使用静态网站_的选项…终于找到了入口,实名就实名吧,填写名字身份证号以及手机号之后,马上就通过实名了。

把hexo生成的文件发布到coding

这一步参照网上的教程就可以了,在coding创建一个仓库(仓库名其实无所谓),然后获得仓库的ssh/https链接,填到hexo的_config中,hexo cl && hexo d部署上去就好(ssh记得添加公匙) 顺带一提,一台电脑有多个hexo仓库或者使用多个ssh密匙的情况可以查看这个博客来解决 https://www.sugen.cn/article-20190622.html ``` >folded Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa Host github-rsa.com HostName github.com User git IdentityFile ~/.ssh/github_rsa

部署静态网站

实名之后还是看不到“部署page”的选项的,还需要前往项目设置(左下角)->项目与成员->功能开关 打开构建与部署功能,之后原来的左侧菜单栏中就多了一个按钮,在这选择静态网站。

选择立即部署,即可生成静态网站。

配置自定义域名

点击右上角的设置可以前往coding page设置界面,在这里添加你的域名,并开启强制https。

智能解析(github page 和 coding page双部署需要设置)

由于我的hexo主要仓库还是在github上,并且我也不打算完全转移到coding上,所以我在两边都部署了静态网站,这就需要dns pod之类的智能dns根据访问者的线路来区分应该解析到哪台服务器上了。比如我让境内的访问者访问coding page,境外的访问者访问github page。 注意,如果首先设置成这样,再申请证书会失败,我是暂时先让境内境外的dns都解析到coding然后申请证书成功之后,再修改成下图这样

效果测试

之后再去百度站长工具查看百度的机器人是否可以获得站点上的文件。

直连github page

由于之前的dns记录记录还没有完全更新,这里面的部分国内测试节点依旧访问了coding page(腾讯云),但是大部分都是访问的github page

境内走coding page 境外走github page
ping 测试

coding page的服务器位于新加坡腾讯云,让境内访问coding page的时候ping值有不错的改善…但是在晚上测试,虽然腾讯云新加坡电信去程cn2,延迟看上去也还行,但是实际都是百分之五十以上的丢包率。

图片删了…

另外补充一个zeit作为cdn的比较

在网上看见有人说zeit用来加速hexo博客效果不错,我也试了试。我们在注册zeit的时候会让我们和github的账号关联,并添加仓库的权限,zeit和coding不同的是它不需要我们再push上去,在一开始关联我们的github仓库之后,我们每次hexo d github仓库发生变动,zeit也会重新构建静态网页,这点比coding方便很多。

他们使用的是香港/台湾的谷歌云服务器,效果看上去还是可以的,但是免费账号每个月只有20G的流量,如果访问量较大的博客可能就不太适合了,如果要自定义域名并开启https我们需要把域名的nameserver改成他们的。

3.13补充 又看了看 zeit 是支持ANAME/CNAME接入的,添加域名后把域名指向他们提供的*.now.sh即可,这样就很方便了。

百度爬虫测试

**特别注意!**如果你采取的是下载html文件验证的话,需要把html文件放到source文件夹里面,还得编辑一下文件内容,加上如下字段来避免hexo的模板改写该文件。

title: date: 2020-03-013 13:30:30

layout: false

```


部署之后再验证,通过。 验证成功了,但是在之后的抓取诊断测试中试了很多次依旧是失败,仔细看报错,发现百度的爬虫访问的还是github的ip,依旧403… 截至发文,抓取测试依旧是异常的,不知道为什么dnspod中把境内/百度的连接都解析到了coding page上,但是还是没起作用,可能是还需要等一段时间生效吧。 3.13晚上更新,在我让默认流量都走coding page,境外流量都走github page后,百度爬虫终于成功抓取了页面,之前单独设置百度走coding page的时候一直失败,不知道是不是dnspod的解析出了点问题。 修改配置之后,再测(晚上九点) 我目前用的配置是: (欢迎交流你们的配置)

  • 电信——coding page
  • 移动——coding page
  • 联通——zeit的gcp
  • 搜索引擎——coding
  • 境外——github page

总结

对比了三种方案,如果直接使用github page或者github page + cloudflare的话除了访问较慢,还有一个比较大的问题是百度爬虫无法爬取你的页面,自然文章都不会被百度收录。采用github page + coding page的方式,如果你能接受实名的话可以使用,但是coding的服务器也是在新加坡而不是国内,所以速度也不会有什么保证(不过我看电信去程是cn2,但是晚上丢包吓人),这样做也可以被百度收录。而zeit的话部署非常方便,百度爬虫可以正常获取页面,速度也还算可以(使用前面两种方案时,移动的访问速度简直比蜗牛还慢,甚至干脆无法访问),但是免费版每个月只有20G流量(不过对于访问量不大的个人博客已经够了)。

comments powered by Disqus
本站访客数:
Built with Hugo
主题 StackJimmy 设计