背景
github提供gitpage可以基于本地hexo环境构建个人博客站点,而且速度很快。 但是有个致命问题,百度不收录gitpage 站点,原因据说是gitpage 屏蔽百度蜘蛛,由于个人站点大量被百度蜘蛛访问,导致github 负载增加,github所以屏蔽了百度。
导致结果: 网址不会被百度收录。
寻找解决方案
参考文章:https://blog.csdn.net/grackanil/article/details/81196931
GitHub Pages
被设计为直接来源于GitHub仓库的个人、组织或项目主页。
提供静态网站托管服务
不支持服务端代码,比如 PHP、Ruby 或 Python
GitHub Pages 提供的域名可以支持 HTTPS 访问
可以配置自定义的域名,但是无法给自定义的域名配置 SSL ,HTTPS is not supported for GitHub Pages using custom domains. 查阅 Github Help,所有 GitHub Pages 网站(包括使用自定义域正确配置的网站)已经都支持 HTTPS 和 HTTPS 强制实施。
响应速度还是有点慢
网站仓库小于1GB,带宽限制 100GB/每月,构建限制10次/每小时
Netlify
不支持后台逻辑运算能力的网页
如果要部署 Hexo 大体思路是,通过 CLI (命令行界面)将 md 渲染为静态网站,然后通过 git 部署到 Git 平台,然后使用 Netlify 的 webhook 自动抓取部署
具有全球CDN、持续部署、一键HTTPS等优势
能通过客户端 JS 与可重用 API 可以带来动态功能,炫酷。
可以使用 Hugo 静态网站生成器和 Hetlify 网站自动化系统配合,以解决 Github Pages 的不支持 HTTPS 和 响应慢的问题
Coding Pages
由国内 Coding 提供
访问速度友好
可以做 GitHub Pages 和 Coding Pages 同时部署 Hexo,然后通过域名 DNS 解析,国外访问 GitHub Pages ,国内 访问 Coding Pages, 以优化访问速度
可以免费绑定多个自定义域名
自定义域名可以享有免费 SSL 证书,全站支持 HTTPS 协议
更新代码库就可以自动部署。服务器稳定,香港服务器国外支持也友好
新增动态页面部署
有一个小问题是,网站首页如果不放置官方『Hosted by Coding Pages』的链接,会系统添加中间『Hosted by Coding Pages』页面。
GitLab Pages 是由 GitLab 提供,旨在为 GitLab 工程、个人、groups 创建网站。
可以使用任何静态网站生成器,如 Jekyll、Middleman、Hexo、Hugo、Pelican等
可以配置自定义域名 HTTPS,需要的是上传证书
Now
不仅支持静态网站托管,也支持 JavaScript(Node.js) 或者 Docker 驱动的网站,
可以使用 CLI 或者链接 Git 仓库
支持自定义域名,开启 HTTPS
传输基于 HTTP/2
不需要安装 Git 等源代码控制工具,不需要设置 keys 或者 tokens
实时部署。
Firebase Hosting
只能 CLI
支持自定义域名并支持开启 HTTPS
支持重定向和重写。
Bitbucket Cloud
必须要通过 HTTPS 访问
不能自定义域名
所有项目的静态网站代码都只能放在专门的站点仓库里。
页面缓存 15 分钟,意味着改变不会立即可见。
Aerobatic
可以支持 CLI 上传代码
自定义域名需要收费。
Surge
只支持 CLI
支持自定义域名,开启 SSL 是需要收费,同时需要自己上传证书
总结
决定使用netlify 提供得部署,源代码依然在github上,netlify提供执行hexo相关命令环境,同时个人域名绑定都切换到netlify上, netlify 而且提供了免费https服务。
netlify 基于github 更新,github 对应的项目更新,netlify自动编译部署。这样免去了本地hexo环境。
个人测试速度还是有些差异:ping netlify 主机和gitpage 主机。
部署在gitpage的站点
$ ping yuv420.com
Pinging yuv420.com [185.199.109.153] with 32 bytes of data:
Reply from 185.199.109.153: bytes=32 time=56ms TTL=52
Reply from 185.199.109.153: bytes=32 time=57ms TTL=52
Reply from 185.199.109.153: bytes=32 time=56ms TTL=52
Reply from 185.199.109.153: bytes=32 time=57ms TTL=52
Ping statistics for 185.199.109.153:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 56ms, Maximum = 57ms, Average = 56ms
部署在netlify的站点
$ ping yuv420.com
Pinging yuv420.com [178.128.17.49] with 32 bytes of data:
Reply from 178.128.17.49: bytes=32 time=103ms TTL=53
Reply from 178.128.17.49: bytes=32 time=103ms TTL=53
Reply from 178.128.17.49: bytes=32 time=103ms TTL=53
Reply from 178.128.17.49: bytes=32 time=103ms TTL=53
Ping statistics for 178.128.17.49:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 103ms, Maximum = 103ms, Average = 103ms
具体部署过程
之前github上已经备份了hexo 以及网址原文件:
netlify 新建项目,并授权访问github hexo 项目(生产hexo静态页面的hexo源文件)
同时提供hexo 命令
设置好后,添加自己的域名。
同时修改域名服务器dns到netlify 提供的dns
相关参考:
google 提交网址验证
具体参考:https://www.woguide.com/archives/4933.html
相关问题
deploy 在netlify 中看不到日志
被墙了,具体可以参考