Typecho优化

前戏

做了快一年博客了...也没写过几篇干货基本就全删了,但是从始至终不管是Ty还是WP我一直在做的一件事就是优化速度,就算是用香港虚拟机的时候依然如此,不过总是没有特别明显的效果,因为已经达到极限了?因为根本不能优化?其实都不是,而是我们没有找到优化的方法,每次都在盲目的缓存,加速,压缩,我们并不知道我们的博客真正需要优化的是什么,那么本篇水文将简单的提出几个非常简单的优化方案..若有不对的地方望大佬指出@(泪)

前排警告:本文部分内容可能毫无意义?我也不知道,所以建议通过右边的目录跳着看
本文大部分内容来自@夜之寐 @月宅酱 @魔改症末期患者:神代綺凜 @PolyQy 若有侵权请留言 看到后秒删,谢谢各位大佬

分析

如上面所说,我们要先找到博客访问慢的根本原因
这个功能可以在谷歌浏览器中按F12在Network中实现(Ctrl+F5刷新缓存,得到最准确的数据}
先以我的博客作为实例

这里就是举个例子,主要是优化JS等文件,我已经把主题css和js弄到七牛了..

我们可以看到之前那个Galgame的封面是相当的大..耗时也最久,相比之下启用GZIP压缩的首页本身才7K
那么就要用压缩的方式来达到加速的效果(别太过分,全是马赛克谁还看
这里安利一款APP【图片压缩】可以在酷安APP中找到 压缩后大小合适 且不会影响多少画质/顺便推荐下腾讯的智图 压缩了也完全看不出来
那么把我们压缩完的图片重新上传到七牛后再刷新查看效果(原图170k 压缩后47K

可以看到有一点的提升

缓存

上面是为了首屏时间而做的优化,现在则是缓存
这里可以推荐Tpcache
而Tpcache支持Memcached/Memcache/Redis/Mysql缓存 所以比较推荐 但是会出现一些问题..所以我已经弃用了
所以..我现在是又拍云的浏览器缓存和首页缓存 效果也还不错
如果有CDN就尽量使用CDN了,若没有则推荐上面的这款插件

压缩

首先是可以通过在Typecho的index.php <?php下中添加代码开启GZIP压缩

/** 开启gzip压缩, add by AH */  
ob_start('ob_gzhandler');  

然后就是插件CompressHTML可以压缩HTML代码和开启GZIP压缩
同样的,又拍云支持智能压缩(Gzip 和 Brotli)我目前等级都开到5了 首页只有7K+
在Appnode中已经开启了PageSpeed
(可以使用Tpcache来达到压缩的效果/直接添加到主题)

给Pinghsu主题集成HTML压缩功能

伪静态

通过添加伪静态规则 修改固定链接以及插件来实现
伪静态规则可以直接在各面板的伪静态配置中找到Typecho的配置 如Appnode的

if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php$1 last;
}

再从后台设置伪静态链接中设置为固定链接
把Hpcache插件启用(作者已经停更了..缓存需要手动清除)
主要是静态化页面,提高服务器性能..

DNS预加载

本站所有JS CSS 封面都是来自我的七牛云存储域名
于是预加载可以提高加载速度
主题Mirages自带了本功能

图片延迟加载

也就是lazyload图片延迟加载
在<head></head>标签中插入下面一段代码.也可以添加到页脚
以下内容来自@夜之寐

<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery-lazyload/1.9.5/jquery.lazyload.min.js"></script>
    <script type="text/javascript">
      jQuery(function() {          
          jQuery("img").lazyload({
            placeholder:"https://cdn.aeink.cn/content/templates/emlog_dux/images/loading.gif",
              effect:"fadeIn"
            });
          });
</script>

如果你希望没看到图片前先加载200px,可以通过设置阀值来控制,具体实现:

jQuery("img").lazyload({ threshold : 200 });

值得一提的是:

  1. lazyload依赖jquery,如果你的站点没引用juery,请先引入jquery。
  2. 在上述代码中,img是延迟加载所有图片,这里你可以根据不同模板作相应改动。比如我现在使用的大前端主题,可以改成.container
    img,这样更改后,只延迟加载.container容器内的图片,否则主题侧边的头像和协议图片也跟着延迟加载,等最后才加载出来。所以和我一样使用大前端主题的最后把jQuery("img")改成jQuery(".container
    img")。使用其他模板的根据不同模板实际显示效果自行更改。

使用云存储

具体我也不是很明白原理 目前正在使用主题自带的七牛镜像功能

所以这里就推荐月宅大佬的几篇文章了(都是WP的 不过可以参考@(惊哭)

{网站提速}如何使用七牛存储加速空间加载速度-萌一库

{干货}利用WP Super Cache的CDN来挂载JS CSS(又拍云、七牛通用)

另外就是月宅大佬有关WP的优化 除了WP插件外的还是可以参考的(虽然下面我要把除了插件外的抄过来@(滑稽)

#干货# 将你的WordPress网站提升到神速/优化

当然..明白原理后我还是会回来修改本文的

优化静态,动态资源

说抄就是要抄@(小乖)(啊不,参考,参考@(你懂的)
通过将JS CSS放到云存储后 将所有的封面都放到云存储中,我之前有部分封面来自百度..但很大程度的拖慢了加载速度,所以就换成了七牛的
以下内容来自@月宅酱
通过上面的方法,你已经将全在的css、js、图片资源寄托到了一个高速大带宽的服务器上了。瞬间把源站的压力减少很多。
2.动态优化
为了使得你的wp(ty(/ω\)更上一层楼,你需要安装php的拓展“opcache”,这个拓展在一些web控制面板中可以直接安装,通过ssh的方式安装还请自行百度。opcache安装后自动启用,无需你去做其他配置,启用opcache后你需要注意的是,它会缓存你的动态文件,也就是php,如果你修改了php文件,不会即时生效,需要等一会,大约几分钟左右。

memcache和redis也是不错的选择,但这里月宅会优先选择memcache作为缓存器,memcache就不一样了,并不是你装上后,就可以自动启用的,你还需要去安装关于memcache的WP插件,这个功能在W3的插件中有(W3 Total Cache),不推荐你同时使用W3与super cache,因为W3也拥有super cache的功能,并且配置比它更强大,CDN也可以在这个插件配置,一个插件,能省去多个插件的负担。

PHP拓展

同月宅大佬提到的opcache,PHP也有很多加速,压缩类的拓展 如我现在安装的几个

当然了,没有必要这么多,我只是全部都安上了(笑

PHP版本

说到PHP了,就说下版本的问题吧
以下内容来自@PolyQy
php版本毋庸置疑地影响着以php架构的typecho的运行
php7 相比于php5.x 性能的提升是质的飞跃
同样的typecho版本分别在两个版本的php下执行时间想去甚远
在typecho根目录下执行index.php时间对比

user@fqdn:# time php index.php > /dev/null 2>&1 
real    0m1.525s
user    0m0.180s
sys     0m0.036s
# php5.6.33

user@fqdn:# time php index.php > /dev/null 2>&1 
real    0m0.178s
user    0m0.067s
sys     0m0.006s
# php7.2.7

内核

使用魔改版BBR
以下内容全部来自@魔改症末期患者:神代綺凜大佬
让机子的网速biu~biu~起来哦!比原版 BBR 还要强!
Vicer 大佬的脚本

Head Pic: 「島風です!」/「茨乃」のイラスト [pixiv]

TCP BBR 魔改版 for Debian/Ubuntu
BBR 是来自 Google 的一个 TCP 拥塞控制算法,单边加速,可以提升你的网络利用率。

安装
确认你可以使用 BBR
直接运行以下命令即可:

wget --no-check-certificate -qO 'BBR.sh' 'https://moeclub.org/attachment/LinuxShell/BBR.sh' && chmod a+x BBR.sh && bash BBR.sh -f
# 本站备份脚本地址:https://lolico.moe/files/scripts/vicer/BBR.sh

脚本会自动安装并重启

此脚本运行时会自动选择最新的非rc版本(非候选发布版)内核进行安装,并且自动卸载旧内核(无需人工干预)。
安装完成后,执行以下命令:

lsmod | grep 'bbr'

如果结果不为空,则说明成功开启了 BBR,那么你就可以使用后续的 BBR 加强版。

安装 BBR 魔改版

wget --no-check-certificate -qO 'BBR_POWERED.sh' 'https://moeclub.org/attachment/LinuxShell/BBR_POWERED.sh' && chmod a+x BBR_POWERED.sh && bash BBR_POWERED.sh
# 本站备份脚本地址:https://lolico.moe/files/scripts/vicer/BBR_POWERED.sh

执行过程中会重新编译模块,等待完成即可。

安装完成后执行

lsmod | grep 'bbr_powered'

如果结果不为空,则说明成功开启了 BBR 加强版。

注意事项
如遇报错:Error! Header not be matched by Linux Kernel.
请使用-f参数来用强制模式重新安装原版 BBR,然后再尝试安装加强版 BBR。
如遇报错:Error! Install make.或Error! Install gcc.
首先尝试apt-get update,再执行此脚本。
如果还是没解决,则请尝试安装 gcc(>=4.9)
以下是 Ubuntu 安装 gcc 4.9 的示例

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get -y install g++-4.9

此脚本在 Debian8,Debian9,Ubuntu16.04 上通过测试。

[小实验] 锐速&BBR究竟哪家强?个人PC有必要上锐速吗?

使用CDN

首先我的第一句话就是 不推荐加速乐!千万别用...因为你要使用https的话必须要交900..土豪的话..随意
目前我使用的是万网DNS+又拍云
不太推荐又拍云的缓存 只打开以下功能就好
智能压缩 开 页面压缩 开 视频拖拽 开 TLS 1.3 开 WebP 自适应 开 H.265 自适应 开 浏览器缓存 开
(来自四季的猫主题群大佬的指导)
如果没有备案的话可以考虑Cloudflare

自建DNS与服务器

不知道自建国内DNS服务器未备案能不能用?我估计不能..

通过Dnsmasq自建干净的DNS服务

服务器方面 我目前这台是1M的华北2 也就是北京..所以访问速度可能非常慢,这里也要提到服务器所在地的问题,我现在在北京,访问速度还行,但不代表其它地区的速度很快,推荐站长工具和17ce来测速
如果你未备案 使用的海外服务器也是可以使用CF在香港的节点的

说的比较乱,不好意思..本文可以说是非常水了..基本没什么内容..毕竟我还是个小白#(期待)
文中提到的主题(可能你看到本文时我已经不在用了)@Mirages @Hpcache 其它的还请自行百度吧..这篇文章写了快两个小时了..

评论卡