博客网络架构

为了方便以后的同学架设自己的博客系统,在此记录一下我的博客网络架构,供来访者参考。我的博客服务器放在了vultr的New Jersey节点,服务器采用debian 9,同时开启了TCP bbr 网络拥塞控制算法。为了进一步提高访问速度,利用CloudXNS的分地区解析的功能,分别在国内和国外增加了一套CDN系统。

前言

为了方便以后的同学架设自己的博客系统,在此记录一下我的博客架构,供来访者参考。

博客程序

本博客采用较为知名的开源博客程序wordpress架设,一开始用的博客自带的主题,但是后来发现自带的主题无法满足我的要求,于是就改用的自己编写的主题,目前采用的就是我自己编写的主题。当然,除了wordpress之外还有很多知名的开源博客程序,如Z-BlogJoomlaHexo等等,对其他博客程序感兴趣的同学可以了解一下。

服务器

我的博客目前使用的是vultr的VPS,配置为1CPU、512M内存、20G SSD,每月费用为$2.5,不过这种配置的VPS大部分都已经售罄,不太好申请。目前容易申请的最便宜的VPS是每月$5,配置为1CPU、1024M内存、25G SSD。如果对vultr感兴趣,可以通过下面的推广连接申请。

vultr

服务器操作系统用的是debian8,http程序使用的是nginx,采用php7.0,数据库使用mariadb,并采用redis做缓存。

https 证书采用的是Let’s Encrypt的证书,因为Let’s Encrypt的证书有效期为3个月,所以部署了自动化程序,每2.5个月重新申请证书。你在浏览器上看到的证书可能不是Let’s Encrypt的证书,那是因为我在服务器前端加了CDN系统,你看到的证书是CDN提供的证书。

域名

这个博客一开始使用的是smartserver.xyz这个域名,但是xyz域名在北京没办法备案,所以也没有办法部署国内的CDN系统,所以当时采用的是cloudflare 的CDN,但是因为众所周知的原因cloudflare在国内的访问速度并不理想,所以为了能用上国内的CDN就注册了z2os.com这个域名,并做了备案。

CDN

为了能让博客在国内和国外都获得良好的访问速度,所以我在国内和国外分别部署了一套CDN系统,目前z2os.com使用qcloud进行解析,qcloud支持域名分线路进行解析,正好利用这个功能实现国内用户解析到国内CDN,国外用户解析到国外CDN。

2017年8月24日更新:用了一段时间发现qcloud的云解析速度不太理想,所以就将z2os.com的解析迁移到了CloudXNS

国内CDN使用的是qcloud的CDN系统,国内的CDN也看过好多家,这么多家CDN厂家中目前只有qcloud有免费的https流量,其他的厂家要么是需要升级专业版才能使用https的CDN,要么是http有免费流量但是https需要收费。

国外的CDN使用的是cloudflare的CDN系统,对国外用户来说cloudflare的免费套餐简直是业绩良心,但是对我这种需要区分国内和国外进行解析的用户有一个缺点,cloudflare的免费套餐不支持cname模式,如果要使用免费套餐托管到cloudflare,但是托管到cloudflare之后就不能分线路解析了,真是鱼和熊掌不可兼得啊。有没有办法让cloudflare的免费套餐支持cname解析呢,这个问题困扰了我很久,直到我看到这篇博文:极客族免费提供支持SSL的CNAME版CloudFlare,一切问题就迎刃而解了。

最后放上我博客架构的示意图,方便各位理解,以后如果博客架构有什么调整我也会在这篇文章下更新。

博客架构