两天前,在腾讯云购买了域名之后,我的博客正式上线了。但奈何服务器在国外,国内访问速度并不理想,于是我决定给我的博客cdn加速。
查阅了一番,发现目前的方案主要有以下几种,我都逐一尝试了一番。
先简述一下我的情况:服务器是搬瓦工的vps,域名在腾讯云买的,使用了wordpress搭建博客,并配置了https站点。因为服务器在国外,域名无法备案,这也直接导致了我接下来一连串的失败尝试。
最终也只有最后一种方案是适合我的。
若你们的域名备案了,可以参考我前面的方案,如果你的情况和我一样(vps+https),可以直接跳到最后的方案四
欢迎观摩我的博客
方案一.服务商一键静态文件cdn加速。
本来我想用这种最主流的方案。目前比较知名的服务商七牛、百度云、腾讯云等。
目前七牛提供的免费额度对于小站点来说也是足够的了。对于大多数的国内博客来说,这也是最省时省力的做法
我搬运了七牛的价格表过来:
就在我即将开通服务的时候,发现!
这些服务都需要域名备案!然而的然而!我的服务器在大洋之外,没办法备案。
于是这条路对我不通!真是失望,最简单的路走不了了。
我的失败原因:域名没有备案。
方案二.腾讯云对象储存+cdn加速(仅适合http)
研究之后发现还有第二条路可以走,那就是采用对象储存来储存静态文件,然后使用cdn加速服务商提供的对象储存域名,这样便无需担心域名备案问题了。
对比研究了一番,我决定采用腾讯云的对象储存+cdn加速。
这里我参考了这个教程:参考教程
可惜,预告一下,此方案我最终还是尝试失败了
我的失败原因:我的站点为https
以下为尝试过程,供大家参考
首先先注册腾讯云,开通对象储存。不懂的可以看上述的参考教程
然后打开腾讯云控制台选择Bucket列表,然后创建Bucket
不妨起名blogbucket
然后选择 密钥管理--点击前往api密钥
得到自己的APPID和密钥
接着在WordPress中安装插件
【基于腾讯云存储COS的WordPress远程附件支持插件】下载链接为
http://cdn.wangjunfeng.com/downloads/qcloud-cos-support.zip
下载该插件,然后上传安装,即可
在WordPress插件中点击设置
然后将刚刚获取的APPID和密钥填上
URL前缀则在Bucket列表的域名管理中找到
此时设置完毕后,如果你的博客原本有图片,可能会出现无法加载的情况。
这是因为访问域名已经改成了对象储存,而你的对象储存中并没有你的图片。
所以我们还需要设置回源。
回到腾讯云的控制台,选择基础配置,找到回源设置,设置成你的博客域名
此时再次刷新你的博客,图片就能出现了。回源设置会在对象储存中找不到你的文件的时候,回到你设置的域名寻找,并自动上传到云储存,再下次访问时便可以直接使用对象储存了。
然后回到域名管理,打开加速域名,将新的域名复制到wordpress的插件的URL前缀处即可,当然别忘了加上后缀,也就是加上你的本地文件夹的目录
如果一切顺利,此方案也成功实现了cdn加速。
然而的然而!!因为我的博客使用了ssl证书加密,在回源时,返回了302,因而无法自动储存到对象储存中,卒
也就是说,以上方案仅适合http的网站,而不适合https!
这又不得不让我另寻他路了
在与大佬沟通之后得到两条方案:
1.纯cdn加速
2.再建一个http源
显然,选择1便是回到方案一,我的域名没备案,此路不通
看来只能选择2,于是就此出现了第三种方案
方案三.另建http站后使用对象储存+cdn加速
提前预告一下,此方案对于我的情况来说还是失败,因此以下简单记录一下我的过程,供大家参考。
我的失败原因:服务器不在国内。我在下面会提到。
以下为尝试过程
1.建立http源站
域名解析
首先我先在我的域名管理里面添加一个static的解析,得到了一个http地址
修改hosts,配置多站点
先ssh连接我的服务器
#vim /etc/hosts
新增一行
127.0.0.1 zixuanchen.cn static.zixuanchen.cn
然后wq保存退出
修改Apache配置文件
#vim /etc/apache2/sites-available/000-default.conf
增加一行
ServerName zixuanchen.cn
wq保存退出
新建static-site.conf
配置文件
#vim /etc/apache2/sites-available/static-site.conf
增加三行
ServerName static.zixuanchen.cn
ServerAdmin webmaster@localhost
DocumentRoot /var/www/static
wq保存退出
将site-available中新建的static-site.conf与site-enable软链接
#ln -s /etc/apache2/sites-available/static-site.conf /etc/apache2/sites-enable/static-sites.conf
新建/var/www/static目录
#cd /var/www
#mkdir static
重启Apache
service apache2 restart
此时http源已经配置好了
我们需要将https站点的wp-content中的文件与http源软链接
ln -s /var/www/path-to-your-wordpress/wp-content /var/www/static/wp-content
然后在腾讯云中将回源的地址设置成static地址
在wordpress插件中将 url前缀中的https更改成http
至此,该方案也算顺利完成了
可是!在我再次测试的时候发现!
回源虽然正常了,可是资源还是无法自动上传到对象储存!
百思不得其解的我不得不发起了工单求助
得到了这样的结果
也就是说,此方案再次宣告失败。
方案四. 七牛+腾讯云对象储存,迂回战术!
简述一下此方案,因为腾讯云的对象储存只能回源时对应http的域名,而七牛则可以对应https。按理说我直接使用七牛的对象储存+cdn就能实现了,可是七牛的cdn不再支持对象储存的默认域名,也就是说需要自定义域名的对象储存,而我的域名没有备案(这么折腾全因没有备案),所以无法用七牛的cdn。可是腾讯云能够使用cdn加速默认域名的对象储存。因而我们可以采用七牛回源我的博客,腾讯云回源七牛对象储存并cdn加速策略。
具体的只需要在腾讯云中将回源地址设置为七牛对象储存的默认地址
在七牛的镜像储存中设置成博客地址
在wordpress中使用腾讯云的插件,设置如同方案二
这样就完成了!
欢迎观摩我的博客