| tags: [ ] categories: [technology ]
网站说明
本文主要通过建立本站的流程,描述建站成本、技术栈和架构、折腾心得。文章根据以上所述的变更而变更,力求维持最新。
建站流程
- 核算成本
- 购买域名
- 域名实名
- ICP备案
- 公安备案
- DNS提供商选型
- 静态网站生成器选型
- 构建服务选型
- 静态网站托管服务选型
- CDN选型
网站成本
建站流程中,除了备案两项官方不收费之外,都可以产生成本。得力于目前云服务提供商提供各种具有流量限制的免费政策,在流量范围内目前只有购买域名才是必须支出的成本。但是免费政策不一定具有长期稳定性,并且因为免费,服务提供商不一定会有很好的技术支持,所以最好有备选方案,可以做到随时切换。
域名
目前中国大陆境内,域名解析需要对域名持有进行实名认证1,换句话说就是想用中国大陆的DNS服务,就得先实名。支持实名认证的域名提供商基本都是境内的(暂时没发现有境外的支持)。因此如果想使用境内DNS做境内外分流,或者境内CDN加速,推荐直接在境内的域名提供商注册域名,如果已经在境外注册了域名,可以转入到境内的域名提供商。
刚注册的域名,需要过了60天才能转出,这个坑本人已踩过,告诫看官注意。注册域名的费用基本跟域名后缀有关,最好不要使用太冷门的后缀,因为很多可以绑定域名的服务可能会不支持你的后缀。转移域名也会产生费用,因为注册局规定域名在转入的同时需要先续费1年。
备案
如果你的网站主要服务境外,完全可以在境外购买域名和托管服务。但是境外的CDN和托管服务在境内要么慢,要么间歇性丢包,要么无法访问,要么不知道什么时候会发生前三种情况,总之速度感人。因此面向境内用户的话,备案基本是必须的了2,境内各大CDN厂商在绑定域名都有填写备案号一项。备案现在各类云服务有代办,方便快捷。
DNS
DNS用个老牌稳定的就行了,免费版本也足够用,实在不好用,切换也不麻烦,只是要时间等生效。对本人来说,其实也只用到了邮件的MX、TXT记录等,子域名的CNAME,最后是根据线路(境外、电信、联通、移动等)分流。
本站分流只区分了境内境外,分流的好处是:
- 境内外使用不同的CDN或托管服务,因为境内的CDN可能境外速度表现不好或者费用高,境外反过来同理。
- 站点可以生成境内外不同的两份,分开源站托管,这样境内外用户在同一个URL下可以看到不一样的内容,比如社交分享按钮不一样。
需要注意根域名不要做CNAME,跟MX记录是冲突的。根域名直接访问,本站选择了重定向到www子域名的方法。
静态网站生成器
动态网站暂时就不考虑了,免费托管找到有可以提供运行docker镜像的,但是流量有点小了。觉得真的有需求的话,可以用这种服务做成API接口,给静态页面去调用,而不必全站都是动态的,维护伤神。
静态网站生成器种类繁多,经常能看到有人提到的是jekyll、hexo、hugo。本站选用的是hugo,主要是功能目前够用,生成效率高,还有很赞的一点是纯静态编译,安装部署调试都非常方便。
构建服务
静态网站生成器一般都有提供部署功能,无外乎就是推送源码,远端生成,另一种就是生成完,推送生成物。前者需要托管方本身支持。这些工具都是假设你都是一直在桌面端写完操作推送的。
本人场景不一样,想做到的是,只用关心文档的编写,写完提交之后,自动触发构建,生成境内外两份,自动部署到境内外源站。文档自然是用Git管理,构建服务现在也多起来了,不过使用的相对用熟悉的老牌Travis CI。travis免费用户虽然构建排队要点时间,不过还好,毕竟写博客网站量不大的时候也不是很急着要发布的,能正确发布就行。
静态网站托管
对比体验了几种服务,如下:
GitHub Pages:众人都知道,速度是不快的了,现在已经支持https,但是不支持自行提交证书。
Netlify:速度很不错,自带CDN,唯一遗憾的是在境外,有突然无法访问的风险。
Coding Pages:香港机房,速度很快,绑定域名后会弹出跳转广告,需要添加官方广告到页面并申请祛除。
码云Pages:免费版不支持绑定域名。
COS:有多区域机房,提供静态网站服务,并能和自身CDN快速结合。
最终选择了境外托管在Netlify,境内在COS的香港机房。
CDN
CDN的选择,国内节点感觉都差不多,考虑的是有无免费流量,HTTPS是否支持,HTTP/2是否支持。有免费流量的有:
腾讯CDN支持HTTP/2。VeryCloud免费流量更多一些,自身不提供证书需要自行上传。免费证书可以通过Let’s Encrypt获取。目前选用的腾讯,VeryCloud备用。