昨晚临睡前不知为何想起了这件事情,今天就动手搞起来,原本以为很简单,结果...,因为Typecho的配置文档不完全(可能是我没找到),搞了三个多小时才部署完成。
先看看部署完成之后的测试效果:
测试地址:http://www.17ce.com
效果详情:http://t.cn/EXxl43M
各节点已缓存的情况下
---效果图片---
博客配置:阿里1H1G1M小水管(速度快不到哪去),两个阿里域名(qzone.work,qzone.club),面板使用的宝塔,原来已经配置SSL。
顺便把配置及部署流程记录一下。
1.腾讯云配置CDN
进入腾讯云控制台->腾讯CDN(国内)->域名管理
->添加域名(域名必须已备案,源站设置填写博客服务器IP,其它按需设置)->添加完成->返回域名管理
2.域名CNAME绑定
进入阿里云控制台->云解析DNS->对于域名->解析设置->添加记录->对应域名CNAME添加记录(CNAME是腾讯CDN值,对应添加)
进入这里,等待腾讯CDN部署完毕,基本就可以访问了。
如何判断CDN是否生效?
进入测速平台(https://www.17ce.com/) ,输入地址开始测试,看返回结果中的解析IP是否是自己的服务器IP和数量,如果不是,且数量不止一个即成功,如下图(已成功)
3.部署SSL
像我的博客,原来是可以通过SSL进行访问的,但现在启动CDN访问之后,再通过SSL访问会报红(原因:浏览器缓存)
进入宝塔面板->网站->设置->关闭SSL
提取证书,原来博客的SSL是通过宝塔(Let's Encrypt)免费申请的,拿出来同样可用,问题是怎么拿?
当然如果你原来不是这里申请,或者根本没有申请,那你看这里没啥用,这里只讲本博客情况,其它情况也差不多。
宝塔面板首页->文件->点击路径(输入/www/server/panel/vhost/ssl/
)->回车访问->选择网站
OK,点击编辑即可查看内容,这里告一段落....
开始部署SSL
腾讯云控制台->腾讯CDN(国内)->高级工具
->证书管理->证书配置(开始配置,选择域名,将证书内容,私匙内容对应复制过来,其它不用修改,保存完毕)
保存之后,稍等几分钟,腾讯CDN自动部署.....
到这里基本就已经配置完成,但是可能因为某些因素而导致无法访问,比如我的博客Typecho,配置之后无法获取本站是否已经启用SSL,导致模板里面出现http://
和https://
混用,浏览器出现报红,这里就需要根据自己网站实际情况解决了,这里只说下 Typecho
解决方法
4.Typecho 博客配置启用SSL
这里真的要疯狂吐槽一下官方,文档不全(反正我没找到),博客前台基本没问题,前台主要是模板问题,关键在于你的模板是否支持,这里不讲;
在使用SSL访问的情况下,出现(css,js)资源文件无法加载,后台一直进不去,无法加载原因;程序还是认为资源是http://
请求,结果所有请求全部失败...
各种函数、参数追踪,花了三小时,最后发现 Typecho 库文件里面,Typecho_Request 的 isSecure() 方法无法正常判断,为啥?我也不知道,以后有空再研究,就是这个东西...
文件路径 /var/Typecho/Request.php
,大概第238行左左右,追踪之后发现,其实大部分地址前缀获取都是来自本类的getUrlPrefix()
方法。
分析此函数,最后... ,最后发现只要将:__TYPECHO_URL_PREFIX__
此常量设置为布尔值 True
即可,Md,转了好半天,好吧,方法出来了。
解决方法:
前面全是分析(废话),找到根目录文件config.inc.php
,在适当的地方添加以下代码即可解决。
/** 定义开启SSL (强制性) */
define('__TYPECHO_SECURE__', True);
效果图:
为啥吐槽官方?要是直接把这个常量配置在里面,不就可以了???关键是没有,没有,没.....
OK,全部配置完毕.....