静态网站的托管方法
2020-08-04
周溱
我之前一篇博客曾经推荐过各种发表过个人博客的方法,最终推荐的是github pages. 最近,我又做了一番研究,发现其实有很多种方法,每种方法都免费,无广告,包含自动SSL证书,自动使用全球性CDN保障速度和可靠性。事实上,在这个网络年代,小数据量,低流量,静态内容服务的市场价格就是零!
Github Page
Github Page上次已经提过,这里再复述一下。使用github page,你可以轻松创建一个静态网站服务全球:
- 使用 XXX.github.io 二级域名
- 1GB 存储空间
- 每月 100GB 流量
- 每小时更新10次
虽然github的目的是给托管在github上的软件项目提供一个主页空间,但github目前并不限制内容范畴,个人博客是明确在允许范围内的。
Netlify
Netlify是一个startup,提供比github page更高级的静态网站服务。按照它的理念,所有网站都应该是静态网站,使用各种 serverless 的API服务,在客户端通过Javascript 平台集成在一起,即所谓JAMStack (Javascript, API, Markup) 设计. Netlify 提供了:
- 大量可随意使用的网站模版
- 高级web console,一键式首次部署,git驱动CI/CD (Continuous integration / Continuous Deployment)
- 大量可订制的 API 服务
- 全球性CDN确保速度和可靠性
- 内建CMS (Content Management System)
而且网站是你的,网站上全部内容都由你控制,Netlify 没有也不能嵌入广告或种种获取网站访问者隐私的方法。初阶服务仍然是免费!
Vercel
Vercel和Netlify比较类似,也是一个startup. 它之前叫做Zeit now, 今年初重新融资后改成现在的名字,可能觉得新名字更像个公司意思吧。它的服务范畴与Netlify相似,也是JAMStack 平台网站托管部署。Vercel 是目前最热门的 javascript 框架 Next.js 的核心开发者,提供的服务虽然没有netlify这样包罗万象,但在技术深度,和服务质量上恐怕更胜一筹。
Surge.sh
与 Netlify 和 Vercel 不同,Surge.sh 提供的服务相当基础,甚至不包括 github 集成和CI/CD. 但也覆盖了:
- 快捷命令行部署
- CDN 服务
- 自动 SSL
- 内容 100% 控制
- 无明显空间,流量,更新频率限制
评价
首先声明的一点是我对 JAMStack 的了解相当粗浅,Javsscript 环境用的也不多,甚至带有一定畏惧和鄙视情绪。我只能评价作为一个静态空间托管服务的优劣。
Github page
github page 理论上来说不是让你做任意网站的,也没有CDN功能。当然对于个人博客这么小流量的应用其实也没有什么所谓。github page自己不提供任何API端点,但可以使用github内部的API,或者第三方API,但本身不提供任何集成服务,一切都要自己来。
Netlify
netlify提供的功能最为强大。使用它的各种模版,CI/CD流程,以及网页集成CMS,理论上你无需在本地安装任何软件,单凭一个浏览器点几下就能生成功能强大的网站,并能从网页CMS上持续维护更新内容。真正做到了零代码。但是,昨天我鼓捣了半天,发现:
- 某些模版其实不是很靠谱
- 网页CMS功能对于技术人员来说比较鸡肋
- 功能太过强大,其实提供了很多方法割伤自己
是的,你是可以做零代码网站,但一不小心搞坏了还不得钻进去debug,这个落差就大了,对模版网站技术栈不是很了解的人,包括我自己,其实挺难搞的。
Vercel
Vercel 不提供CMS之类的傻瓜式功能,对非javascript 框架的支持有限。如果你对 Javascript, Next.js 等技术深有了解的话,这可能是一个很不错的服务,可惜我不是,所以我也没有继续尝试下去。
Surge.sh
surge和以上几家不同,它完全不提供CI/CD,甚至不需要git存在。它的网站上完全没有任何功能,但它提供一个相当简洁的命令行工具,注册用户,上传内容,简单管理都在这里面了。我上手没有任何壁垒。几秒钟后,我的整个博客就镜像到它的CDN里了:derekzhou.surge.sh,包含二级域名,SSL,合理有效的缓存管理。即使从我本地来看,速度也比我本来的VPS快一点。所以,surge是最适合我的。
缺点也很明显。surge.sh并不是一个startup, 我强烈怀疑它其实后面就只有一个人。免费服务虽然好,但它的付费层要一个月30美元,和netlify与vercel的付费层比起来完全没有竞争力,毕竟在那里有更多更丰富的服务。从盈利能力来说,我相当怀疑surge的长期生存可能。当然,从历史来看,surge也有四五年历史了,在互联网业界已经相当不错,我姑且相信它能存在更长时间。
我的推荐
surge的免费服务相当简便,对于个人博客来说也完全够用。surge目前还不限制容量和流量。以我的个人博客而言,目前有七十多篇,一共未压缩才13MB多点,全部上传到surge才几秒钟时间,实际流量也很小。如果你的网站体量超过几百兆大小,估计就不是很好上传了。其实到这个体量,不管surge还是其他几家都不适合,付费不付费也一样,这些服务不是给你存大量文件例如如影集用的。
Netlify和Vercel其实也有命令行工具,剥去它们的层层功能,其实也可以当surge来用,只是还稍显复杂一点。它们的CDN无论如何只可能比surge的好,所以虽然是牛刀杀鸡,其实也是不错的选择。
Github page相比起来就稍显逊色,对于静态网站来说,最主要的是缺乏CDN功能。它其实也可以做到单条命令部署,但目前珠玉在前,只能向后挪挪了。
感谢技术进步,让构建自己的平台发表言论这件事变得完全免费,并且向所有人开放。
可惜世界上有些地方还有良民证 (ICP许可证) 这件事。
后记
经过一番挣扎,我终于搞定了vercel的命令行工具。现在我觉得vercel是目前最好的选择:
- vercel的网络明显比surge快点
- vercel在免费层已经支持客户提供的域名,并帮你做了非共享的SSL证书。surge不行
- 虽然我的博客在它那里build不起来,但可以绕过去直接上传,花的时间不比surge慢几秒。请看这里: blog.3qin.us
对于一个不是很懂技术的普通人来说,Hugo + Atom + Github + Vercel 已经是很方便的博客平台,免费,安全,无广告,保护用户隐私,不用写一行代码。wordpress的意义已经接近于零。我下一篇博客会做一个较详细的介绍。