本文仅把自己博客的建立流程及过程中的一些问题记录下来,希望能给其他人带来帮助。

站点建了好久了,最开始是阿里云服务器促销,1核1G1M的服务器3年800元,看着挺便宜,就搞了一台香港服务器,搞好之后装了一些服务(你懂得)。但是各种不稳,后来也没啥用了,就折腾了一个wordpress站点,一个git服务器。git服务器的话gitlab对内存要求较高,最终用docker装了gogs,1核1G用起来完全没问题,想折腾的朋友可以自己搞一个。

今年双十一,阿里云又来促销了,原来的服务器性能太差,而且再有一年就过期了。加上阿里云的促销实在是太给力,2核4G3M的服务器三年才700多。不过还是老用户与狗不得参与,实在没忍住就自己邀请自己又撸了一台国内服务器,这样访问起来能稳定点,也能快一些。然后就是迁移站点,迁移完之后无备案又不能访问。于是赶紧申请备案,流程比较坎坷,名字各种限制,名字好了之后,又被管局打回了一次,原因是之前我的域名解析到了香港机器上,并且对外能访问,赶紧把域名映射到了国内服务器,重新提交申请,经过了大概半个月时间,终于通过了备案。好在阿里云比较良心,备案用了多久,服务器时间延长多久。需要阿里云的朋友可以看下,老带新更便宜,不得不说阿里的营销真牛逼。https://www.aliyun.com/minisite/goods?userCode=lovkvbp7

备案期间,想着是不是可以用443端口走https绕过备案呢,于是又折腾了一把,发现能访问,而且速度贼快,高配服务器就是香,但是后来发现不太稳定,经常出现connection reset by peer。这个时候就得用curl -v命令查看https链接建立的过程了,看哪一步出了问题。

上面是后来链接成功的截图,之前出错忘了截图,当时每次都死在了Client hello之后,肯定是服务器做了手脚,直接reset了。服务器是怎么从https的加密链接里判断域名的呢,这就需要用到SNI(Server Name Indication)了。SNI定义在RFC 4366,是一项用于改善SSL/TLS的技术,在SSLv3/TLSv1中被启用。它允许客户端在发起SSL握手请求时,就提交请求的Host信息,使得服务器能够切换到正确的域并返回相应的证书。要使用SNI,需要客户端和服务器端同时支持。现在的浏览器大部分都支持SSLv3/TLSv1,所以还是老老实实等备案吧。

等待的时间总是漫长的,终于等到了备案的通过,打开的网站的瞬间,我竟然有点眼眶湿润,可能是沙子里面进眼睛了。然后就是开始各种优化,虽然是小站,但是咱能折腾啊,wordpress各种缓存优化插件来一打,CDN肯定也不能少。由于是在国内,有些国外优质插件访问起来特别慢,比如Jet Pack,这个大家都装下试试,慢慢体会吧。反正统计插件、缓存插件、CDN插件得有,如果想从微信公众号采集文章还得下载采集的插件,重点说下CDN吧。

CDN(Content Delivery Network)是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

上面是百度百科的介绍,有点玄幻。总的来说,CDN就是把你网站的资源缓存了一份,放到运营商的服务器上(内容存储),然后用户访问静态资源时候,访问到运营商的服务器上,运营商有缓存就直接返回,没有缓存就回源到你的网站获取资源,然后再缓存。由于运营商在全球各个地方都有服务器节点,他可以把你的内容缓存到各个地方的节点上,美国用户访问到美国的CDN服务器上,中国用户就访问到中国的CDN服务器上,或者电信用户访问到部署在电信的CDN服务器上,总之就是怎么快怎么来。

那么,这么多云服务厂商,CDN技术哪家强呢?我是穷屌丝,不关心哪家强,只关心哪家便宜。听说七牛的对象云存储有免费的10G空间,我可以用来备份网站和数据库。又听说七牛的CDN有每个月10G的免费流量,阿里不免费,腾讯前6个月有免费流量赠送,但是6个月以后呢?穷屌丝没的选择,只能选七牛了。如果大家要用就点下我的邀请链接吧,确定免费了再开哈,我也不知道啥时候会不会取消免费政策,收费的话千万别找我 😛。https://portal.qiniu.com/signup?code=1hbyytqfxs7de

账号注册之后,先申请一个私有空间,可以用来备份网站和数据库。然后申请一个公有空间,用来做CDN源,比如hacksth-public。

然后选择镜像存储,填入你网站的域名,这个是用来缓存你网站内容的。

然后到融合CDN里添加一个加速域名,这个域名你用你网站的二级域名就行,可以叫static.***.com,因为要缓存图片和js等静态资源。通信协议就选http,https是要收费的。源站设置选择你七牛云存储刚才新建的那个公有空间就行。

创建完就等配置成功吧,然后你需要去你的域名服务商那里设置DNS解析,添加一个CNAME记录,刚才那个加速域名映射到七牛云生成的那个CNAME记录上,这样访问static.***.com就会访问到七牛了。

搞定之后,就需要到网站安装一些支持CDN的插件了,然后把你的加速域名填进去,插件会把你网站上的静态资源请求都替换成static.***.com。我用的是WP Super Cache,里面可以设置缓存策略,可以添加CDN支持。后面那个一定要勾选上,由于免费CDN不支持https,https的站点里包含http请求会报错,但是http的网站里包含https请求没事儿。

然后CDN那边没有缓存会请求到源站,也就是你的七牛公共空间里,七牛公共空间由于设置了镜像存储,初次访问没有的文件会自动到你的网站上进行同步。这样后续所有的静态资源流量都不会请求到你的服务器了,节省资源,设置完访问速度基本在400ms左右。

当然你也可以用各种测试网站对网站进行测试,我经常用的是https://gtmetrix.com/ 这个网站,跑完之后能检测出来一些问题,不过有些太吹毛求疵了,玩玩就好,不用太care。

对了,你会发现通过static二级域名可以访问到你的网站首页,不光是js和css,他会把你的首页html也抓取到,放到七牛公有空间中,这样会造成搜索引擎对你网站的降权。所以还需要在wordpress的入口index.php处,判断一下来源是不是七牛,如果是的话,直接返回错误,这样就只能缓存js和图片等资源文件了。

if( strpos($_SERVER['HTTP_USER_AGENT'],'qiniu-imgstg-spider') !== false) {
header('HTTP/1.1 503 Service Temporarily Unavailable');
echo '防七牛镜像';
exit;
}

好了,祝各位玩的开心,有问题可以直接跟我交流。一起探讨,一起搞点儿啥。接下来,我可能要搞搞SEO,看能搞到啥地步。

最后修改日期:2019年12月5日

留言

填写回复或留言

发布留言必须填写的电子邮件地址不会公开。