个人建站时域名/国外VPS选择以及SSL证书配置
域名与VPS供应商选择
终于,在决定好博客使用的主题之后,是时候考虑给博客整一个域名和挂载点了。
之前看过很多基于github.io的hexo部署方案,将博客挂载到github上其实算是个不错的选择。不过我还是想自己买一个VPS,不仅能建站也能用来做别的用途(诸如frp/proxy),既然选择自己建站那肯定要考虑选择域名了。
域名选择时无非就是选择国内还是国外的域名供应商,国内的的云服务器供应商一般都提供域名服务,如果打算将网站建在国内云上那最好还是买配套的域名服务,这样可以享受到从备案到DNS到CDN的一条龙服务。然而我实在是不想备案,原因如下:
- 备案时间太长(几天到一个月不等);
- 需要对根域名绑定的web内容做限制;
- 网站有随时关停的风险;
域名选择
最后决定选择国外的VPS+国外的域名,对于域名来说,可以选择的厂商并不多,一般包括:
- 大善人Cloudflare
- Namecheap
- Porkbun
- Hover
- …
这几家都是值得信赖的大厂,基本不存在跑路可能。经过一些调研,上面这几家域名供应商都会给域名提供附带的服务,比如长效SSL证书、DDos保护、双重验证、Proxy等。同时,对于冷门域名,这几家给开的价格差距很小,因此最好还是选择一个配套服务体系更成熟的商家。
这时候当然还是无脑选Cloudflare(虽然去年刚宕机过一次,导致大片网站进不去),说不定后续还能附带体验cf的其他服务(存储、Cache啥的)。不过选cf的风险在于,如果使用cf提供的proxy、CDN等功能,网站在国内的访问速度可能会比较慢,但如果不使用这些功能,选cf的价格就显得比较高。最后想了想既然都选择用国外VPS了那为什么不用cf呢?cf给网站带来的便利还是太多了。
VPS选择
VPS的选择就太多了,我选择VPS的参考维度有以下几点:
- 配置: 应该提供1C1G/1C2G这类的配置,带宽不受限且月都流量应大于100G;
- 价格: 上述配置不应该超过一个月10刀;
- 位置: 最好有日本/新加坡节点可供选择;
- 国内访问: 被墙风险小,国内ping回传时间在200ms最好,不强求CN2;
- 可持续性: 没有跑路风险,售后有没有无所谓;
经过一大番搜索与调研(调研时发现了一篇神文,可惜有些信息是过时的,不过还是强烈推荐读一读),最终我选择尝试的有三家VPS供应商:
- Bandwagon(搬瓦工): 最出名的CN2VPS供应商,加拿大供应商;
- Greencloud(绿云): 美国供应商,最近走的机场有大量他们的节点;
- Vultr: 美国供应商,提供小时量级的服务,随用随停;
可以对比他们提供的符合上述要求的VPS配置:
| 供应商 | 套餐名 | 配置 | 位置 | 带宽与流量 | 价格 |
|---|---|---|---|---|---|
| 搬瓦工 | E-Commerce VPS | 2C1G | Japan | 1TB/mo | 50$/3mo |
| Greencloud | Budget VPS | 1C1G | Japan SoftBank | 1.5TB/mo | 6$/mo |
| Vultr | Cloud Compute-Shared CPU-vc2-1c-1gb | 1C1G | Japan | 1TB/mo | 5$/mo |
综合来看,配置最高评价最好的还是搬瓦工,但他家现在真挺贵,50刀一季的价格有点不能接受。Vultr和绿云网上评测不算多,但Vultr支持小时付费,可以先测试一下他家的节点。
买了Vultr上述的日本大阪服务器,分配了公网IP,选用Arch系统(带Arch玩挺不错)。刚用ssh登上就觉得这个输入延迟不是人能用的,体感延迟在半秒甚至一秒。ping一下发现回传时间在300ms并伴随着不定时的丢包(可能是中国联通的问题)。这个不说访问,对日常开发影响都非常大……
果断停机之后去买了GreenCloud一个月(绿云不支持退款,买了就得用),系统选Ubuntu 22.04,ping的回传延迟在80~100ms,连续ping两分钟没有发现任何丢包,用speedtest-cli在浙江电信节点进行测速,结果如下:
1 | |
可以看到绿云的带宽和延迟还是秒杀了Vultr的,看了一下季度价格,绿云这款的季度价格在15刀(105RMB),相比季度价格为50刀的搬瓦工还是亲民了不少。于是怒而续费了一个季度直接开用。
不过绿云和Vultr都用的是kvm虚拟,日常使用的时候总觉得cpu性能有些奇奇怪怪的波动,但是现在市面上能买到的基本上都是KVM了吧……
SSL证书与Cloudflare Proxy
Cloudflare允许为网站提供有效期长达15年的SSL证书,前提是开启DNS Proxy功能。一般添加一条DNS记录时cf会默认为你开启Proxy。cf提供的proxy原理大致上是在dns解析时帮你做一层反向代理,原理可以查阅cf的手册。

根据cf的手册,使用Proxy的好处有:
- 反向代理、IP隐藏与DDos保护(访问时有机会遇到cf提供的机器人验证);
- 优化并缓存对该域名的HTTP请求;
- 一键为多条域名/产品应用相同的规则。
调整proxy的状态可以瞬时反映出来,当在DNS界面关掉proxy之后,dig域名立刻就可以得到真实的ip地址。

在为域名开启proxy之后便可以开始配置SSL证书了,在dashboard内选择SSL/TLS下级内的Origin Server选项,选择Create Certificate选项,得到证书与私钥。分别保存为cf_cert.pem与cf_key.pem,放在nginx服务器上的某个路径下(一般放在/etc/ssl/路径下)。

随后在nginx配置(/etc/nginx/目录下或某个子目录下)里修改配置如下模板后重启nginx服务,网站就已经支持HTTPS了。
1 | |