10

Hexo博客使用腾讯云CDN加速及优化

 3 years ago
source link: https://segmentfault.com/a/1190000040312457
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

原文地址:Hexo博客使用腾讯云CDN加速及优化

使用公共 CDN 加载部分资源

修改主题(我的是NexT主题)配置文件,使用公共CDN加载部分CSS、JS文件,我选择的是 jsDelivr 这个公共CDN平台;

提供其他平台的CDN:

编辑 _config.yml

# Script Vendors.
# Set a CDN address for the vendor you want to customize.
# For example
#    jquery: https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js
# Be aware that you should use the same version as internal ones to avoid potential problems.
# Please use the https protocol of CDN files when you enable https on your site.
vendors:
  # Internal path prefix. Please do not edit it.
  _internal: lib

  # Internal version: 2.1.3
  jquery: //cdn.jsdelivr.net/jquery/2.1.3/jquery.min.js

  # Internal version: 2.1.5
  # See: http://fancyapps.com/fancybox/
  fancybox: //cdn.jsdelivr.net/fancybox/2.1.5/jquery.fancybox.pack.js
  fancybox_css: //cdn.jsdelivr.net/fancybox/2.1.5/jquery.fancybox.min.css

  # Internal version: 1.0.6
  # See: https://github.com/ftlabs/fastclick
  fastclick: //cdn.jsdelivr.net/fastclick/1.0.6/fastclick.min.js

  # Internal version: 1.9.7
  # See: https://github.com/tuupola/jquery_lazyload
  lazyload: //cdn.jsdelivr.net/jquery.lazyload/1.9.3/jquery.lazyload.min.js

  # Internal version: 1.2.1
  # See: http://VelocityJS.org
  velocity: //cdn.jsdelivr.net/velocity/1.2.3/velocity.min.js

  # Internal version: 1.2.1
  # See: http://VelocityJS.org
  velocity_ui: //cdn.jsdelivr.net/velocity/1.2.3/velocity.ui.min.js

  # Internal version: 0.7.9
  # See: https://faisalman.github.io/ua-parser-js/
  ua_parser: //cdn.jsdelivr.net/ua-parser.js/0.7.10/ua-parser.min.js

  # Internal version: 4.6.2
  # See: http://fontawesome.io/
  fontawesome: //maxcdn.bootstrapcdn.com/font-awesome/4.6.2/css/font-awesome.min.css

  # Internal version: 1
  # https://www.algolia.com
  algolia_instant_js:
  algolia_instant_css:
  
  # Internal version: 1.0.2
  # See: https://github.com/HubSpot/pace
  # Or use direct links below:
  # pace: //cdn.bootcss.com/pace/1.0.2/pace.min.js
  # pace_css: //cdn.bootcss.com/pace/1.0.2/themes/blue/pace-theme-flash.min.css
  pace: //cdn.bootcss.com/pace/1.0.2/pace.min.js
  pace_css: //cdn.bootcss.com/pace/1.0.2/themes/blue/pace-theme-flash.min.css

Internal version 说明 NexT 内部使用的版本,经过测试的版本,我们在公共CDN平台找到相应的版本并配置即可。NexT 官方也给出了说明: 设置 「JavaScript 第三方库」

使用 gulp 压缩资源

在 Hexo 目录下执行命令安装:

npm install gulp
npm install gulp-htmlclean gulp-htmlmin gulp-minify-css gulp-uglify gulp-imagemin --save

在 Hexo 博客的根目录下创建 gulpfile.js 文件,内容如下:

var gulp = require('gulp');
var minifycss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var htmlmin = require('gulp-htmlmin');
var htmlclean = require('gulp-htmlclean');
var imagemin = require('gulp-imagemin');

// 压缩css
gulp.task('minify-css', function() {
    return gulp.src('./public/**/*.css')
        .pipe(minifycss({
            compatibility: 'ie8'
        }))
        .pipe(gulp.dest('./public'));
});
// 压缩js
gulp.task('minify-js', function() {
    return gulp.src('./public/js/**/*.js')
        .pipe(uglify())
        .pipe(gulp.dest('./public'));
});

// 压缩 public 目录 html文件
gulp.task('minify-html', function() {
    return gulp.src('./public/**/*.html')
      .pipe(htmlclean())
      .pipe(htmlmin({
           removeComments: true,
           minifyJS: true,
           minifyCSS: true,
           minifyURLs: true,
      }))
      .pipe(gulp.dest('./public'))
  });

// 压缩图片
gulp.task('minify-images', function() {
    return gulp.src('./public/images/**/*.*')
        .pipe(imagemin(
        [imagemin.gifsicle({'optimizationLevel': 3}), 
        imagemin.jpegtran({'progressive': true}), 
        imagemin.optipng({'optimizationLevel': 7}), 
        imagemin.svgo()],
        {'verbose': true}))
        .pipe(gulp.dest('./public/images'));
        
// 默认任务
gulp.task('default', gulp.parallel(
    'minify-css','minify-js','minify-html','minify-images'
));

重新生成并压缩:

hexo clean
hexo g
# 执行压缩,两条命令可以合并:hexo g && gulp
gulp

配置腾讯云 CDN

CDN平台很多,有阿里云、七牛云、又拍云,那我为什么选择腾讯云呢?原因很简单,腾讯云给新开通CDN的个人用户免费赠送半年的120GB免费境内流量包,每月限额20GB,这对于个人站点来说够用了。

腾讯云:https://cloud.tencent.com/

操作步骤:

  1. 登录腾讯云并进入控制台;
  2. 选择控制台左上角的【云产品】,找到【CDN与加速】,单击【内容分发网络】;没有开通的,按提示开通即可,开通完成后就能自动获取腾讯云赠送的流量包;

赠送流量包

  1. 在【内容分发网络】页面左侧菜单中选择【域名管理】,单击【添加域名】,输入相关配置后,单击【确认提交】;

添加域名

填写说明:

属性说明加速域名填写你要加速的域名,可以是你的博客站点域名业务类型默认即可源站类型已经搭好站点的选“自有源”,使用腾讯云对象存储搭建的选“COS源”,一般选择“自有源”回源协议已开启 HTTPS 的选择 HTTPS,但要配置 HTTPS 证书,不然部署后访问会提示证书错误源站地址填服务器IP,支持多个
  1. 提交完成后,在域名管理页面可看到域名记录,包含 CNAME,我们需要配置域名 CNAME,以下提供阿里云配置方法供参考;

阿里云配置 CNAME

a. 登录阿里云控制台云解析DNS。

b. 单击要解析的域名,进入解析记录页。

c. 进入解析记录页后,单击【添加记录】按钮,开始设置解析记录。

d. 若要设置 CNAME 解析记录,将记录类型选择为 CNAME。主机记录即域名前缀,可任意填写(如:www)。记录值填写为当前域名指向的另一个域名。解析线路,TTL 默认即可。如果有提示 “CNAME”记录与“A”记录冲突 的,把"A"记录删了重新配置就行了。

e. 验证 CNAME 是否生效

可以通过 nslookup 来查询 CNAME 是否生效,若应答的CNAME记录是我们配置的CNAME,则说明配置成功,此时您已成功开启加速服务。

nslookup -qt=cname <加速域名>

访问加速后的站点

使用 http://ping.chinaz.com/ 测试,发现确实比以前快很多,速度明显得到了提升;

测试结果


Recommend

  • 12
    • cuiqingcai.com 3 years ago
    • Cache

    使用 Hexo 编写博客

    使用 Hexo 编写博客 发表于 2020-10-18...

  • 6
    • my.oschina.net 3 years ago
    • Cache

    如何优雅的使用 CDN 优化博客

    如何优雅的使用 CDN 优化博客 ...

  • 13

    基于 Hexo 的 GitHub Pages 配置 CloudFlare CDN ...

  • 5

    在碎片化学习的时代,没有体系化/总结的知识很快会被彻底遗忘,而博客可以帮助我们记忆平时零碎的知识。有人似乎认为想玩博客就必须要域名/服务器,这里吾辈不得不说明一下,这个认知是错误的。 对于绝大多数网站来说,静态是无法满足复杂的需求的。然而...

  • 9
    • zikin.org 3 years ago
    • Cache

    使用CDN为Gravatar加速

    使用CDN为Gravatar加速 2021-7-21 23:20 何为Gravatar Gravatar(Globally Recognized Avatar)是一项在全球范围内使用的头像服务。只要你在Gravatar的...

  • 5

    在 Hexo 博客中更优雅地使用 LaTeX 数学公式在 Hexo 博客中如何插入 LaTeX 数学公式早已是老生常谈,搜索引擎中涌现了许多解决方案,我也不想再造轮子。但是再与我使用的 Hexo 主题磨合时总是会出现一点的瑕疵。那么这次便记录下我是如何在...

  • 9
    • blog.diqigan.cn 2 years ago
    • Cache

    使用 GitHub + Hexo 搭建个人博客

    使用 GitHub + Hexo 搭建个人博客 发表于 2017-08-19...

  • 4

    内容分发网络 Content Delivery Network前言 #除去 WordPress, 许多博客网站是托管于 GitHub Pages 上的,但其在国内的速度实在是难以称道。 所以使用国内服务商的 CDN 对其进行加速不失为一个好办法...

  • 3
    • shuzang.top 8 months ago
    • Cache

    hugo搭建个人博客6-CDN加速

    个人博客用的是 Github Pages 服务,国内访问实在是太慢了,于是想用 CDN 做加速。CDN 介绍CDN 全称为 Content Delivery Network,中文名为内容分发网络,以下介绍来自

  • 7
    • einverne.github.io 5 months ago
    • Cache

    使用 Bunny CDN 加速你的网站

    使用 Bunny CDN 加速你的网站 Posted on 03/20/2024 , Last modified on 03/20/2024...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK