• 24小时客服在线
  • info@qimumu.top

分类:每日调试记录

新日历站点改版记录

位置导航:首页服务器相关 /  每日调试记录


1、为什么要建立镜像日历站点

日历站点是放在阿里服务器上的,但是由于其上传带宽实在是太慢(1M)、硬件配置很低,并且阿里服务器承担着运行本博客的重任,所以决定还是建立一个镜像服务器站点放置日历。

Nginx的负载均衡不会搞,也尝试过利用api接口在发送文章时自动同步到另外一个服务器站点的wordpress,最后感觉还是分别同时做新旧两款主题的日历,内容相同但是风格不同。

可以通过侧边栏进入日历站点,也可以直接点击下面的链接

旧版日历

新版日历

2、图片站有哪些选择/旧版日历架构

其实像我这样的图片站有很多中选择,比如只架设一个wordpress的框架,其余的图片通过免费图床外链,但是免费图床要么就是速度很慢,要么就是加了防盗链,不允许跨域访问,而且日历后期一旦多了起来管理就很麻烦,所以我初步的想法是自建图床,套上CDN,在wordpress中直接调用。

但是还是有问题,wordpress上传之后会自动生成几个大小不等的缩略图,这样就算是上传到自建的CDN图床也是很麻烦,于是在旧日历站点采用的是以下结构

·阿里站点创建一个wordpress的框架,采用百度云CDN加速

·图片全部采用另一服务器外链,图片同样采用百度云CDN加速

3、新版日历更新步骤

因为免费并且比较稳定的CDN已经不多了,现在七牛和加速乐免费套餐都不支持SSL证书,快快云赠送每年500G的CDN流量但是https请求又要单独算钱,也就无法实现https访问.

最后无奈决定:准备把新日历站点改成http访问。

1、更改源站及加速站SSL设置

将newgallery.qimumu.top以及 acc.newgallery.qimumu.top 站点的SSL证书取消,去掉强制https访问

2、删除原有解析线路

3、删除原有CDN

把之前绑定在百度云CDN的newgallery站点取消

4、部署新的CDN

●newgallery站点

线路CDN套餐期限
默认加速乐3600GB/月长期有效

●acc.newgallery加速站点

线路CDN套餐期限
默认快快云CDN(阿里代理) 500GB/年 2021.04.20到期
中国移动七牛对象存储10GB/月(存储+CDN)长期有效
中国电信猫云科技CDN30GB/月CDN+20GB/月存储2020.10.30到期
教育网上海云盾CDN峰值5Mbps无限流量长期有效
境外 FreeCDN(智云)不限流量长期有效

FreeCDN再次单方面停止服务,境外改为 奇安信CDN(原360CDN)

2020.4.4 日历双源站加速

位置导航:首页服务器相关 /  每日调试记录


向在疫情中牺牲的所有医护人员以及各行各业的劳动者致敬。

为进一步增加专属日历站点的容错率,提高运行稳定性,决定采用双源站CDN进行加速。

在这之前经历了很多波折,开发历史详见2020.3.28记录

进入正题,今天采用百度云双源站加速方法,在另一个服务器又部署了一个acc.gallery站点,添加了已有服务器的网站证书,成功访问(将主源站加速服务器站点称Abei,备用源站加速服务器称pic)。

但是有一个问题,增加pic备用源站之后,百度云CDN反而将pic作为了主源站,而且没有调整主、备源站的功能,于是只好再将pic备用源站删除。

解决办法:

每日更新的时候把上传到阿里主站的新日历图片同时上传到Abei和pic中,这样当Abei宕机之后及时将备用源站加入百度云的解析子域中,如果两者同时宕机(当然不太可能),就直接回源。

2020.3.31记录(网盘内测)

位置导航:首页服务器相关 /  每日调试记录


1、个人网盘内测

● CDN服务商

采用FreeCDN国外线路加速

因为这一家CDN服务商提供的国内加速线路不免费,而且需要实名认证+备案,所以就用了国外线路(主要为韩国首尔、新加坡、美国华盛顿州西雅图三个线路),国内访问速度大概在0.2秒~1秒,还可以接受。

2020.4.2更新

下午突然发现网站打不开了,源站没有问题,线路也没有问题,最后发现FreeCDN单方面停止服务,总共造成网站瘫痪了两个半小时

现已将CDN服务商替换为百度云CDN,国内主要采用 宁波、苏州、西安、天津、武汉五个加速节点,国外采用美国cloudflare加速节点。

目前国内平均ping为29ms,境外平均速度176ms。

● 免费额度

内测初期开放所有人注册权限

注册后无需绑定及认证,拥有2G免费空间

月流量不限,上传速度不限,下载速度限制550kb/s

● 测试地址

地址:https://pan.qimumu.wang

2、个人图床内测

● 图床的作用

①图片存储托管功能

②免费提供图片的公网访问url

③方便github页面等不支持动态资源的静态网页调用

● CDN服务商

采用百度云CDN全球加速

国内平均访问速度50ms,海外平均访问速度70ms

● 免费额度

内测初期开放所有人注册权限(游客也可上传)

注册后可永久查看之前上传过的所有图片

● 测试地址

地址: https://pic.qimumu.wang

3、使用uptimerobot监控各服务器数据

连接可从网页右下角浏览量旁边的“运行状态查看”进入,也可点击进入

各网站代号说明

代号网址说明
base点击进入主站
gallery 点击进入专属日历
autopay 点击进入自动发货平台
pan 点击进入个人网盘
picture 点击进入个人免费图床
github 点击进入github测试站点
acc_upyun 点击进入主站加速站点
acc_gallery 点击进入日历加速站点
test_US_line 点击进入恒爱主机商免费空间测试-美国线路
test_HK_line 点击进入 恒爱主机商免费空间测试-香港线路
test_SF_line 点击进入 三丰云免费空间测试-国内免备案线路
test_小叶 点击进入 小叶主机商免费空间测试-香港线路

2020.3.28记录

位置导航:首页服务器相关 /  每日调试记录


1、日历使用阿里wp框架+阿贝图片外链+百度云CDN

阿里上传带宽:1M;

又拍CDN免费额度:0.3G/日存储+0.3G/日CDN流量+1万次https请求量/日;

阿贝云上传带宽:5M;

百度云CDN免费额度:不限量日存储+ 10G/日CDN流量+ 不限量http/https请求数

国内外各CDN的比较详见另一篇文章:CDN是什么,如何正确使用CDN

2020.3.23

开通https://gallery.qimumu.top专属日历,全站资源放在阿里云服务器上

效果:访问速度贼慢,每次加载一张图片要一秒,加载一个月的30张日历大概要30-40秒。

2020.3.24

申请开通百度云CDN基础版,将日历站点的uploads目录全部缓存

效果:不同地区的访客第一次访问网站的时候还是很慢

原因:

1、CDN节点不会主动缓存源站资源

提交工单问客服之后才知道原来CDN节点并不会主动缓存源站的内容,而是在用户访问的时候,用户的请求先提交到CDN节点,CDN节点发现并没有用户需要的资源之后,再把请求转发到源站,也就是回源访问。这样用户需要的资源就从源站通过CDN节点转发给用户,此时CDN节点也会相应的把刚转发的资源缓存到CDN节点。

在CDN节点缓存内容有效期内,当该地区又有访问资源的请求时,因为节点已经缓存了相应的资源,所以这时CDN节点会将缓存的资源返回用户,而不需要回源(此时用户状态返回304而不是200 ) ,由于CDN节点的上传流量比源站的配置好很多,而且比起源站,CDN节点离用户更近,这样就达到了加快响应速度以及缓解源站压力的效果 。

说到这应该就能理解,虽然CDN用处很大,但是对第一个访问的用户仍然不友好。 当然CDN的作用更多,比如隐藏源站IP、防御DDoS攻击等,一般用户用不到。

我们举个例子,比如你的服务器在杭州,百度云CDN在北京有一个节点A,在武汉有一个节点B,假设A、B节点都还没有缓存杭州源站的资源,且缓存资源不会过期。

当一个北京的用户a1访问我的网站时,请求会先转发到北京的A节点,A节点发现自己没有北京用户想要的资源,于是将请求转发给杭州源站,杭州源站再把资源通过北京节点A转发给北京用户a1,同时资源会缓存在A节点。

此时当有第二个北京用户a2访问我的网站时,A节点发现自己已经缓存了a2想要的资源,于是直接将缓存的内容发给a2,就不需要再去杭州服务器去取,这样就达到既节省用户a2的时间,又不会对杭州源站产生压力。

2、CDN节点不会自动全国同步

还是按刚才的例子来说,北京用户a1访问之后,资源被缓存在A节点,当a2用户访问时,A节点直接将缓存的资源发给a2而无需回源。然而此时如果武汉用户b1访问网站时,还需要重新回源,原因是A节点的缓存数据并不会自动同步到武汉的B节点。

如果CDN无法做到同步的话,节点越多,反而效果更差

2020.3.25

发布至空间,短时间访问人数剧增,图片根本加载不出来,用户体验极差

2020.3.26

薅到了阿贝云服务器,带宽5M,准备将日历站点的图片url转移到阿贝云,具体操作如下:

1、阿贝云服务器安装LNMP,建立站点,根目录下新建路径:wp-content/uploads/2020/03

2、把日历原图、缩略图全部转移至该目录下

3、使用mysql语言统一替换gallery站点图片url至acc.gallery

测试:

访问日历网站,其中的图片url已经成为了替换好的站点地址,remote address也是阿贝的IP

2020.3.27

又出现了问题。

测试发现图片根本不缓存,每次都要回阿贝云源站获取图片,我以为是第一次访问的原因,刷新了几次,清空浏览器缓存再刷新,还是每次都要回源。

思考之后发现了问题,因为gallery站点使用的是百度云CDN,在CDN控制台设置的是加速gallery站点下的uploads目录,然而图片url已经更改成acc.gallery,如果想要使用CDN的话,还要对缓存规则进行更改,把加速gallery站点下的uploads目录改成加速acc.gallery站点下的uploads目录。

因为之后可能还会更改回去,所以我换了一种操作,直接使用泛域名,缓存*gallery站点下的uploads目录,设置如下:

测试:

状态304,且提示HIT,说明已经缓存成功。因为百度云CDN用的是国外cloudflare(简称cf)的技术,所以会跟cf提供的CDN有一样的提示。

2020.3.28

百度云CDN控制台有一个新功能,叫做“资源预取”

根据官方介绍,这种功能意思是在用户访问网站之前,提前把源站的内容缓存至各CDN节点,也就是用户访问的时候不再需要回源。

看起来这个功能是解决我3.24号提出的两个问题的,去测试了一下。

拿https://acc.gallery.qimumu.top/wp-content/uploads/2020/03/1-31.jpg这个图片为例,我提交了这个url,按照官方说明,应该是CDN节点主动去源站获取我这张图片缓存至各个节点,解决“第一个用户访问需要回源等待”的问题,然而测试时,却出现如下情况:

提示还是需要回源获取,看来百度云CDN的“资源预取”只是个实验性功能,正在提交工单解决。

——————–<2020.4.2更新>——————-

决定弃用这个功能了,客服也不懂。