启用最新的 Nginx,php 以及应用 Brotli 压缩

今天对 VPS 做了一些改动。就是安装了最新版本的 Nginx,Nginx v1.19.7。

此处略去相关代码,请查看桌面标准版文章。


为什么要使用 php 8.0?

这还用说么?大势所趋,JIT 都已经有了,更快更高更强啊。
安装是用的 ppa:ondrej 的 PHP 库。

这里我要特别的记录一下,我启用 php8.0 的时候如何设置的 JIT。默认安装 php8.0 并不会自动启用 JIT,反而是关闭的。

如何设置启用 php 8.0 JIT

首先要先安装好 php 8.0。
然后,编辑 /etc/php/8.0/fpm/conf.d/10-opcache.ini

在尾部加上以下参数。

此处略去相关代码,请查看桌面标准版文章。

设置的参数同 gzip 很类似。通常可以设置压缩水平到 4,或者 5。这个值越大,需要耗费更多 CPU 时间压缩,可获得较小的文件。若设置太大了,造成耗时过多也不合适。
其中有一条 brotli_static,这是设置静态文件预压缩的。比如一个 css 文件,并不会常变换,就可以预先压缩好,当用户请求该文件的时候,就不需要实时压缩,直接把预先压缩好的高压缩文件返回就可以。
比如这里有一个文件 blog.css,原始大小为 2.3KB,当没有预压缩,动态 brotli 压缩参数为 5,访问返回的文件为 1.75KB。
我采用一个命令 brotli -Zkf blog.css
这里三个参数, Z 表示用最大的压缩率,也就是压缩参数11, k 表示保留原始文件,f 表示覆盖。
运行命令后生成一个文件叫做 blog.css.br,文件大小只有 901Bytes,当用户访问 blog.css 的时候,Nginx 会先看有没有相对应的后缀名为 br 的文件,如果有,就直接返回了。所以这是预先压缩的好处。


当前服务器上同时装了 php 7.4 和 php 8.0,是因为目前还有很多 php 程序还没有兼容到 php8.0,还做不到完全使用 php 8.0,不过我想再有半年的时间,应该有很多程序都能做到兼容了。那时候,就可以舍弃 php 7.4 了。

对了,为了比较,减少其它方面的影响,把本站的 CDN 都去了。