Typecho博客全站部署腾讯云CDN教程

前言

建站大半年一直没有太过注重网站的速度.主要是因为新站访问量过低,没有部署的必要,其次就是本人实在是不太了解CDN相关的知识.现在访问量逐渐增加,为了保证网站的访问体验,在网上查找了相关教程,同时也咨询了热心网友后,正式把本站部署到了腾讯云CDN.

为方便后期复用的需求,本文将记录此次部署的全部流程,同时也可以供大家参考.

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

前期环境

由于CDN的设置比较特殊,请不要参照多篇教程对比设置,以至于会出现无法登录后台,无法实时显示评论等问题.本教程是以Typecho博客程序并使用handsome主题为例.

本站服务器相关环境

  • LNMP环境
  • 部署SSL证书并强制跳转HTTPS
  • 顶级域名ioiox.com配置301跳转到二级域名www.ioiox.com为主用域名

添加域名

腾讯云 - 控制台 - 内容分发网络
域名管理 - 添加域名
1.jpg

  • 域名配置 - 添加顶级域名和www二级域名
  • 源站类型 - 自有源站
  • 源站设置 - 你的服务器IP

2.jpg

也可以只添加一个主用域名,必须确定已经配置好301跳转访问你的主用域名
  • 业务类型 - 静态加速
  • 提交 - 缓存过滤可以等会再详细配置

3.jpg


管理域名

添加成功后点击域名右侧的管理
4.jpg

基本配置

  • 确认域名,业务类型,源站信息,回源配置无误,保持默认即可.

访问控制

  • 过滤参数配置 - 开启
  • 防盗链配置 - 根据实际情况配置
  • IP黑白名单配置 - 根据实际情况配置

5.jpg

  • IP访问限制配置 - 开启 10-30QPS即可
  • 视频拖拽 - 默认关闭

6.jpg

缓存配置

  • 缓存过期配置 - 高级缓存过期设置:默认关闭
  • 新增缓存配置 - 参考下图

如不懂请保持与图中顺序参数一致,以避免一些问题.

以下给出文本以方便复制

/usr/themes/handsome/usr/img
/usr/uploads
.php;.jsp;.asp;.aspx
.jpg;.jpeg;.png;.bmp;.gif;.psd;.ico;.tga;.imb;.tiff;.svg;.woff;.ttf;.woff2
.css;.js;.txt;.doc;.wri;.docs;.dot;.xml;.log;.bat;.csv

7.jpg

注意图中首页缓存时间为1天,也可以根据更新文章的频率高低,来适当降低刷新时间.建议1-6小时之间皆可.
  • 状态码缓存 - 默认
  • HTTP头部缓存配置 - 开启

如果HTTP头部缓存配置开启,需关闭源站的HSTS,避免头部冲突.
一般情况下Nginx和Apache默认是没有配置过HSTS的.你也可以自行搜索相关教程来再次确认是否开启.

8.jpg

回源配置

  • Range回源配置 - 开启
  • 回源跟随301/302配置 - 默认关闭

回源跟随301/302配置请一定不要开启,否则会出现无法登录的情况.

9.jpg

安全配置

  • 鉴权配置 - 默认关闭

10.jpg

高级配置

  • 带宽封顶配置 - 开启并根据实际情况配置
  • HTTPS配置 - 前往配置

11.jpg

  • 配置证书 - 可上传自有证书,也可以在腾讯云免费申请.
  • 选择回源方式 - 协议跟随

12.jpg

  • HTTPS配置 - 开启强制跳转HTTPS
  • 跳转方式设置 - 301跳转
  • HTTP2.0配置 - 开启
  • SEO优化配置 - 开启

13.jpg

  • HTTP Header配置 - 添加HTTP Header

添加HTTP Header 可使你的站点使用CDN时SSL证书等级达到A+级
选择自定义参数
Strict-Transport-Security
max-age=31536000; includeSubdomains; preload;

14.jpg

  • 智能压缩 - 启用

请自行检查你的源站是否开启Gzip智能压缩,如已经开启,此处可关闭.

15.jpg

配置完成

此时需将域名进行CNAME解析到CDN为你生成的CNAME地址上,完成CDN部署.如你和我一样配置了两个域名,可以保持两个域名配置相同,如设置过301跳转到主域名,也可仅配置主域名.

进阶配置

手动刷新CDN缓存

如因网站信息更变过多,可以在腾讯云CDN后台手动刷新全站缓存.具体位置在控制台-内容分发网络-左侧的刷新预热,可以根据批量URL或者文件目录的形式刷新资源.

解决首页访问延迟过高

如果是严格按照本教程使用腾讯云CDN,可以修改php.ini解决首页延迟过高的问题,否则不建议使用.
修改你服务器中的php.ini文件,查找session.cache_limiter参数,修改为session.cache_limiter = none并重启php.下图为修改前后的差别.

本站为军哥LNMP.org的1.6版环境,php.ini在/usr/local/php/etc目录下,php重启命令为/etc/init.d/php-fpm restart 仅供参考.

16.jpg

配置CDN后获取访客真实IP

网站在部署CDN后,一般无法获取访客真实IP,只能获取各CDN节点IP,解决此问题可修改站点根目录下的config.inc.php添加以下代码:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  $_SERVER['REMOTE_ADDR'] = $list[0];
}

结语

感谢网友寒夜方舟的耐心解答,帮我完成了这次CDN部署.来源链接请参考:

Typecho (Handsome) 使用腾讯云CDN的配置教程(https)
handsome/typecho接入CDN后获取访客真实IP

文中提到的301跳转和强制HTTPS,可以参考以下链接:

Nginx设置301重定向到www和强制跳转https教程
Apache设置301重定向到www和强制跳转https教程

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

本文链接 https://www.ioiox.com/archives/66.html

最后修改:2019 年 11 月 21 日 03 : 17 PM

4 条评论

  1. 肉松

    腾讯CDN评论经常刷新慢,阿里没有这个问题。

    1. Stille
      @肉松

      我评论没问题呢..实时

  2. 奶爸建网站笔记

    部署了cdn还是有点烦心处,改东西的时候特麻烦。

    1. Stille
      @奶爸建网站笔记

      是啊,最近这一段时间都在改进一些内容...只能手动刷新缓存了.

发表评论